我正在尝试读取Ubuntu中文件的行数。对于我的代码,我正在使用CodeBlocks。
这是我制作的代码。
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“words”。
答案 0 :(得分:1)
检查工作目录的设置。它可能不是pjt / bin / Debug。另外,尝试指定文件的完整路径。
答案 1 :(得分:0)
if (fp == NULL){
return 0;
}
使用NULL检查 fp,因为fopen
返回指针,如果成功,则返回非NULL,因此如果fp == NULL
,则文件打开不成功。这就是为什么程序无法继续,只是返回。