我在如何在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;
}
答案 0 :(得分: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;
}