C 从输入文件打印5行
目前,我正在用c程序编写代码,用于打印输入文件中的一小部分内容。实际上,在我的代码中,我可以只打印一行。但是,我必须在那一行之后再打印下5行 我是编程新手,请帮我解决这个问题** 代码如下所示C 从输入文件打印5行,c,file,C,File,目前,我正在用c程序编写代码,用于打印输入文件中的一小部分内容。实际上,在我的代码中,我可以只打印一行。但是,我必须在那一行之后再打印下5行 我是编程新手,请帮我解决这个问题** 代码如下所示 #include <stdio.h> #include <stdlib.h> #include <string.h> int lineNumber = 2; int main() { FILE *file; char line[100]; int
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int lineNumber = 2;
int main()
{
FILE *file;
char line[100];
int count = 0;
///Open LS-dyna file to read
file = fopen("P:\\tut_c\\read\\df-read\\in.txt", "r");
if (file == NULL)
{
perror("fopen");
exit(EXIT_FAILURE);
}
else if ( file != NULL )
{
char line[256];
while (fgets(line, sizeof line, file) != NULL)
{
if (count == lineNumber)
{
printf("\n str %s ", line);
fclose(file);
return 0;
}
else
{
count++;
}
}
fclose(file);
}
return 0;
}
#包括
#包括
#包括
int lineNumber=2;
int main()
{
文件*文件;
字符行[100];
整数计数=0;
///打开LS dyna文件进行读取
file=fopen(“P:\\tut\u c\\read\\df read\\in.txt”,“r”);
if(file==NULL)
{
佩罗尔(“福彭”);
退出(退出失败);
}
else if(文件!=NULL)
{
字符行[256];
while(fgets(行、行大小、文件)!=NULL)
{
如果(计数==行号)
{
printf(“\n str%s”,第行);
fclose(文件);
返回0;
}
其他的
{
计数++;
}
}
fclose(文件);
}
返回0;
}
当您关闭文件并返回0时,while循环的第一次迭代中会出现第一个逻辑错误
接下来,没有理由为行设置计数器,因为有许多c函数可以处理查找文件结尾(eof)的操作
相反:
int main()
{
FILE *file;
file = fopen("file.txt", "r");
if (!file){ // check if file exists
perror("fopen");
exit(EXIT_FAILURE);
}
else { // if file exists, then...
char line[256];
while(fgets(line, sizeof line, file)){
printf("\n str %s ", line);
}
fclose(file);
}
return 0;
}// end main
我删除了C++标签。C和C++,完全不同的语言。如果你想在C++中做这件事,那就简单多了。请看。非常感谢你!出于某种原因,我的大学教授从未向我提及过这一点,我也从未意识到这是feof()的错误用法!