作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
您好,我想问一下如何针对这个问题修改此代码:(它只接受一个输入然后将其打印出来。我希望它继续运行,直到我按两次 Enter (\n)。
#include <stdio.h>
#define MAXLENGTH 1000
int main(void) {
char string[MAXLENGTH];
fgets(string, MAXLENGTH, stdin );
printf("%s\n", string);
return 0;
}
我对 fgets(string, MAXLENGTH, stdin ); 感到困惑行,stdin 是什么意思/做什么?
编辑:克里斯,我试过你的方法:
#include <stdio.h>
#define MAXLENGTH 1000
int main(void) {
char string[MAXLENGTH];
do {
if (!fgets(string, MAXLENGTH, stdin ))
break;
printf("%s", string);
}
} while (string[0] != '\n');
return 0;
}
它在我按下 enter 后打印,但我想先输入整个列表,然后在我按 enter 两次后让它打印列表。
最佳答案
试试这个:
#include <stdio.h>
#include <string.h>
#define MAXLENGTH 1000
int main(void)
{
char string[MAXLENGTH];
int i = 0;
for(;;++i)
{
string[i] = getchar();
if (i > 0 && string[i] == '\n' && string[i-1] == '\n') break;
}
string[i] = 0;
printf("Print it again:\n%s",string);
return 0;
}
关于c语言:make fgets to keep taking input until I press enter twice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734972/
我是一名优秀的程序员,十分优秀!