我正在嘗試讀取 C 中的檔案。首先我正在計算檔案中的行:
int main(int argc, char* argv[])
{
if (argc < 2)
{
printf("No file specified");
exit(1);
}
FILE* pFile;
char currentCharacter;
int lines = 1;
pFile = fopen(argv[1], "r");
for (currentCharacter = getc(pFile); currentCharacter != EOF; currentCharacter = getc(pFile))
{
if (currentCharacter == '\n') lines ;
}
...
}
計算完檔案中的行數后,我試著一一讀取,像這樣:
char currentLine[255];
for (int i = 1; i <= lines; i )
{
fgets(currentLine, 255, pFile);
printf("%s\n", currentLine);
}
fclose(pFile);
但是每次我運行它時,我都會得到這個輸出:
2a
當我嘗試洗掉 for 回圈并放置fgets()在printf()外面時,它不會列印任何內容
如果您想知道,這是我要閱讀的檔案的內容:
測驗.txt
hi
test2
注意:檔案正在成功打開,因為它正在正確計算行數。
uj5u.com熱心網友回復:
正如評論中所說,無需計算行數。當沒有什么要讀的時候就停下來。也就是說,當 fgets 回傳 NULL 時。
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char* argv[])
{
if (argc < 2)
{
printf("No file specified");
exit(1);
}
FILE* pFile = fopen(argv[1], "r");
if(pFile==NULL)
{
printf("File is not found");
exit(1);
}
char currentLine[256];
while(fgets(currentLine, 256, pFile))
{
printf("%s", currentLine);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511778.html
標籤:C文件
