我在如何在 C 中使用 getline 时遇到问题。我想读取每一行并将其存储到一个数组中。所以我能够读取每一行,打印每一行并打印每行中的字符数。
当我运行我的程序时遇到问题它不会打印出行数和文件,并且不会停止它只是在打印文件的所有行后保持原样。
我也不知道如何将该行存储到数组中。任何帮助/提示将不胜感激!!!
int main(int argc, char *argv[])
{
int line_count=0;
int charac_count;
int count=0;
char line[81];
char *lineptr;
lineptr=(char*)malloc(sizeof(char)*81);
int lineptr_size=81;
if(!lineptr)
{
printf("malloc memory error\n");
exit(EXIT_FAILURE);
}
if(argc !=3)
{
printf("Number of parameters is incorrect.\n");
exit(EXIT_FAILURE);
}
FILE *r;
r=fopen(argv[1], "r");
if(r==NULL)
{
printf("File cant be open\n");
exit(EXIT_FAILURE);
}
charac_count=getline(&lineptr, &lineptr_size, r);
while(charac_counter!=EOF)
{
if(charac_count!=-1)
{
puts(lineptr);
printf("%i\n", charac_count);
}
line_count++;
break;
}
printf("%i\n", count);
fclose(r);
free(lineptr);
return 0;
}
最佳答案
正如 @BLUEPIXY 提到的,你有一个无限循环。尝试这样的事情:
while((charac_count=getline(&lineptr, &lineptr_size, r))!=EOF)
{
if(charac_count!=-1)
{
puts(lineptr);
printf("%i\n", charac_count);
}
line_count++;
break;
}
关于c - 逐行读取文件并存储在C中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46269888/