鱼C论坛

 找回密码
 立即注册
查看: 1223|回复: 18

[已解决]关于getchar()一些问题

[复制链接]
发表于 2021-12-10 07:51:25 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-12-10 07:53 编辑

用了比较笨的方法,如果遇到一个字母的单词,bug
  1. int main() {
  2.         int num = 0;
  3.         char word[11],ch=0;
  4.         while (1) {
  5.                 if ((ch=getchar()) == '\n') {
  6.                          break;
  7.                 }
  8.                 else
  9.                 {
  10.                         entries[num].english[0]=ch;
  11.                 }
  12.                 scanf("%s%s", entries[num].english+1, entries[num].foreign);
  13.                 num++;
  14.                 getchar();
  15.                
  16.         }
  17.         //QuickSort(entries, 0, num - 1);
  18.         int i;
  19.         for (i = 0; i < num; i++) {
  20.                 printf("%s %s\n", entries[i].english, entries[i].foreign);
  21.         }
  22.         return 0;
  23. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-10 11:18:14 | 显示全部楼层
本帖最后由 jhq999 于 2021-12-10 11:28 编辑

想完美,没想到什么完美的办法,只有对相对底层进行操作

  1. int main() {
  2.         int num = 0;
  3.         char word[11],ch=0;
  4.         //FILE* fl=(FILE*)stdin;
  5.         while (1) {
  6.                             ch=getchar();
  7.                                 if (ch=='\n')
  8.                                 {
  9.                                         break;
  10.                                 }
  11.                                 else
  12.                                 {
  13.                                         (FILE*)stdin->_ptr--;
  14.                                         (FILE*)stdin->_cnt++;
  15.                                 }
  16.                 scanf("%s%s", &entries[num].english, &entries[num].foreign);
  17.                
  18.                 getchar();
  19.                                 //fflush(stdin);
  20.                                
  21.                                 num++;
  22.                           
  23.                                
  24.         }
  25.         //QuickSort(entries, 0, num - 1);
  26.         int i;
  27.         for (i = 0; i < num; i++) {
  28.                 printf("%s %s\n", entries[i].english, entries[i].foreign);
  29.         }
  30.         return 0;
  31. }
复制代码
  1. dog ogday
  2. cat atcay
  3. pig igpay

  4. dog ogday
  5. cat atcay
  6. pig igpay
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-10 16:49:36 | 显示全部楼层

ungetc还有这个函数呐?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-10 16:51:29 | 显示全部楼层
a327904410 发表于 2021-12-10 16:08
能看懂,但复杂了许多。大佬参考下我给你的C++做法看能不能再修改下?

看11楼,没想到还有ungetc函数,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-16 02:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表