我是C編程新手。我正在嘗試練習一個簡單的練習題:它是以下內容:需要關於獲取函數的說明C
編寫一個程序,逐個讀取輸入行,直到達到文件末尾,確定每個輸入行的長度,然後僅打印找到的最長的一行。您可以假定最大輸入行長度爲1000個字符。
我的代碼粘貼在這裏:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 1000
int main(void)
{
char line[MAX_LEN], line_temp[MAX_LEN];
int largest_line_size = 0;
int current_line_size;
while (gets (line_temp) != NULL)
{
if ((current_line_size = strlen(line_temp)) > largest_line_size)
{
strcpy(line, line_temp);
largest_line_size = current_line_size;
}
/*printf("%s\n", line); */
}
printf("%d", largest_line_size);
printf("%s", line);
return EXIT_SUCCESS;
}
的問題是,代碼運行,接受輸入,但我從來沒有到一個地步,while循環中斷。如何在使用gets()函數時遇到NULL指針?
非常感謝您的幫助。
感謝,
_直到文件已達到......_不確定你做的是正確的事情,國際海事組織?! – Bateman
問題說直到達到文件結尾。這並不意味着它從文件中讀取,它可能是stdin。在任何情況下,我如何檢查用戶是否通過stdin流不提供更多輸入? – user3317287