当用户输入空行时终止c程序
您好,我正在编写一个程序来计算用户输入的行数,我有以下代码:当用户输入空行时终止c程序,c,input,C,Input,您好,我正在编写一个程序来计算用户输入的行数,我有以下代码: #include <stdio.h> #include <string.h> int readline(char line[], int max); /* count lines in input */ main() { int c, nl,max, i; max = 99; char line[100]; nl = 0; while (( readline(line, max) != 0)){
#include <stdio.h>
#include <string.h>
int readline(char line[], int max);
/* count lines in input */
main() {
int c, nl,max, i;
max = 99;
char line[100];
nl = 0;
while (( readline(line, max) != 0)){
++nl;
}
printf("%d\n", nl);
}
/* readline: read a line from standard input, return its length or 0
*/
int readline(char line[], int max)
{
if (fgets(line, max, stdin) == NULL)
return 0;
else
return strlen(line);
}
#包括
#包括
int readline(字符行[],int max);
/*计算输入中的行数*/
main(){
int c,nl,max,i;
max=99;
字符行[100];
nl=0;
而((读线(线,最大值)!=0)){
++nl;
}
printf(“%d\n”,nl);
}
/*readline:从标准输入读取一行,返回其长度或0
*/
int readline(字符行[],int max)
{
如果(fgets(行、最大值、标准输入)=NULL)
返回0;
其他的
返回strlen(行);
}
但我不知道如何终止程序并将“nl”打印到屏幕上,我正在使用cygwin64终端来编写和执行程序
谢谢把条件改成这样
while (( readline(line, max) <= 1)){
...
}
while((读取行,最大值)
基本上,fgets()
带有一个换行符,您可以使用它来确认行中是否有任何输入,或者只输入了一个换行符
readline返回所读行的文本。空行返回
这个
空字符串。如果在读取行时遇到EOF,则该行
为空,返回NULL。如果使用非空行读取EOF,
它被视为一条新线
所以您可以检查空字符串
size_t n;
while(fgets(line,max,stdin))
{
n = strlen(line);
if( n == 1 && line[n-1] == '\n')
{
//This is a empty line
}
}