こんにちは私はユーザーが入力した行数を数えるプログラムを書いています、私はこのコードを持っています:
#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);
}
しかし、プログラムを終了して「nl」を画面に出力する方法がわかりません。cygwin64ターミナルを使用してプログラムを作成および実行しています。
ありがとう
size_t n;
while(fgets(line,max,stdin))
{
n = strlen(line);
if( n == 1 && line[n-1] == '\n')
{
//This is a empty line
}
}
基本的にfgets()
改行文字が付属しており、これを使用して、行に入力があったか、または改行文字だけが入力されたかを確認できます。
readlineは、読み取られた行のテキストを返します。空白行は空の文字列を返します。行の読み取り中にEOFが検出され、その行が空の場合、NULLが返されます。EOFが空でない行で読み取られた場合、それは改行として扱われます。
したがって、空の文字列を確認できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加