我想讀取Ubuntu中文件的行數。對於我的代碼,我使用的是CodeBlocks。C - 爲什麼在fopen(filename,「r」)之後fp == NULL是true?
這是我所做的代碼。
int countlines()
{
// count the number of lines in the file called filename
FILE *fp = fopen("words", "r");
int ch=0;
int lines=0;
if (fp == NULL){
return 0;
}
lines++;
while(!feof(fp))
{
ch = fgetc(fp);
if(ch == '\n')
{
lines++;
}
}
fclose(fp);
return lines;
}
如果我調用countlines(),返回值是0,這是因爲他檢查fp == NULL,這是真的。
我把文字放在與我的主文件夾相同的文件夾中。可執行文件位於Projectfolder/bin/Debug中。
詞是這樣的:
"albatros",
"olifant",
"kantklos",
"robijn",
"internet"
的最終目標是,以填補的文件的話的話陣列,而不使用的#include「字」。
可能是文件未找到,可能是您沒有讀取權限,請使用[stat]檢查問題(http://man7.org/linux/man-pages/man2/stat.2。 HTML)。 –
這就是爲什麼你應該說; if(fp == NULL){perror(「Ups」);返回-1; }'('perror'給你一個理由,而'-1'或者其他負值是OK方式來調用函數調用失敗。) – Morpfh
它的話。我有權限閱讀文件 – Jasper