C语言fscanf的eof无限循环,使用fscanf时无限循环
我用C编写了这个简单的程序,因为我现在正在大学学习FILES.我带了一个txt文件,其中包含最后一场比赛的结果列表,所以我的程序将按照我的要求显示格式化的数据.这是我的代码:
/* Esercizio file Motogp */
#include
#define SIZE 20
int main ()
{
int pos, punt, num;
float kmh;
char nome[SIZE+1], cognome[SIZE+1], moto[SIZE+1];
char naz[SIZE+1], nome_file[SIZE+1];
FILE *fp;
printf ("Inserisci il nome del file da aprire: ");
gets (nome_file);
fp = fopen (nome_file, "r");
if (fopen == NULL)
printf ("Errore nell' apertura del file %s\n", nome_file);
else {
while (fscanf (fp, "%d %d %d %s %s %s %s %.2f",
&pos, &punt, &num, nome, cognome, naz, moto, &kmh) != EOF ) {
printf ("Posizione di arrivo: %d\n", pos);
printf ("Punteggio: %d\n", punt);
printf ("Numero pilota: %d\n", num);
printf ("Nome pilota: %s\n", nome);
printf ("Cognome pilota: %s\n", cognome);
printf ("Nazione: %s\n", naz);
printf ("Moto: %s\n", moto);
printf ("Media Kmh: %d\n\n", kmh);
}
}
fclose(fp);
return 0;
}
并且有我的txt文件:
1 25 99 Jorge LORENZO SPA Yamaha 164.4
2 20 26 Dani PEDROSA SPA Honda 164.1
3 16 4 Andrea DOVIZIOSO ITA Yamaha 163.8
4 13 1 Casey STONER AUS Honda 163.8
5 11 35 Cal CRUTCHLOW GBR Yamaha 163.6
6 10 19 Alvaro BAUTISTA SPA Honda 163.5
7 9 46 Valentino ROSSI ITA Ducati 163.3
8 8 6 Stefan BRADL GER Honda 162.9
9 7 69 Nicky HAYDEN USA Ducati 162.5
10 6 11 Ben SPIES USA Yamaha 162.3
11 5 8 Hector BARBERA SPA Ducati 162.1
12 4 17 Karel ABRAHAM CZE Ducati 160.9
13 3 41 Aleix ESPARGARO SPA ART 160.2
14 2 51 Michele PIRRO ITA FTR 160.1
15 1 14 Randy DE PUNIET FRA ART 160.0
16 0 77 James ELLISON GBR ART 159.9
17 0 54 Mattia PASINI ITA ART 159.4
18 0 68 Yonny HERNANDEZ COL BQR 159.4
19 0 9 Danilo PETRUCCI ITA Ioda 158.2
20 0 22 Ivan SILVA SPA BQR 158.2
当我运行我的程序时,它会返回第一个无限循环.为什么?
还有其他功能来读取这些数据吗?
C语言fscanf的eof无限循环,使用fscanf时无限循环相关推荐
- 【C语言】C语言的三种基本控制结构-顺序、选择、循环
目录 1.算法 1.1算法的概念 1.2算法的表示方法 1.2.1自然语言 1.2.2流程图 1.2.3伪代码 1.2.4C语言 2.C语句 3.数据的输入输出 3.1格式输入输出函数 1.print ...
- 7-219 sdut-C语言实验-A+B for Input-Output Practice (不确定次数循环)7-220 sdut-C语言实验——两个数比较
目录 7-219 sdut-C语言实验-A+B for Input-Output Practice (不确定次数循环) 7-220 sdut-C语言实验--两个数比较 7-219 sdut-C语言实验 ...
- c语言语句循环当回车结束,java 循环输入回车结束
java 循环输入回车结束 [2021-02-08 00:53:12] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...
- 每三个数换行 用C语言表示,关于换行符:使用fscanf()读取每行3个数字的文件,为什么“%d%d%d%* c”和“%d%d%d”一样好?...
我知道%d格式说明符,当在fscanf()中使用时,会读取一个整数并忽略其前面的空白,包括换行符(我已对其进行了验证).但是在下面的程序中,我使用fscanf()来从多行(每个行包含3个整数)的文件读 ...
- 《看聊天记录都学不会C语言?太菜了吧》(12)循环有多容易?你看一眼就怀...
好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...
- com.sun.istack.SAXException2: 在对象图中检测到循环。这将产生无限深的 XML
错误如下所示: javax.xml.ws.soap.SOAPFaultException: Marshalling Error: 在对象图中检测到循环.这将产生无限深的 XML: org.entity ...
- C语言 文件读写 EOF - C语言零基础入门教程
目录 一.EOF 简介 二.EOF 实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.EOF 简介 EOF 是 End Of Fi ...
- 【C语言笔记初级篇】第二章:分支与循环
目录 (1)什么是语句 (2)分支语句 A:if语句 B:switch语句 (3)循环语句 A:while B:for循环 C:do while循环 (4)goto语句 A:goto语句说明 B:go ...
- C语言之文件读写探究(六):fscanf、fprintf(格式化读写文件)
相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...
- c 语言 循环判断语句,C值循环语句(七)
在 C 语言中,我们会经常遇到循环的情况,那么这时候我们就得用循环的语句了.常见的循环结构有三种:do循环.while 循环以及 for 循环.循环语句的基本工作方式有:a> 通过条件表达式判定 ...
最新文章
- 一致性哈希算法及其在分布式系统中的应用
- ue4 导出模型_UE4构建光照后模型变黑,二套UV解决办法
- 常见拒绝服务攻击行为特征与防御方法
- golang的错误汇总
- oracle查询orapw文件,oracle学习笔记《一》
- linux 安装swoole
- vue动态引入外部CDN导致线上项目页面无法显示 - 看了不亏
- 秒级快速批量创建kvm虚拟机并指定IP地址和主机名
- 视频版权检测算法​​
- Java基础学习总结(185)—— Java 在云原生时代的进化
- 《大话设计模式》第29章-OOTV杯超级模式大赛—模式总结(五)
- GitLab CI/CD conda: command not found
- maven下载,安装与eclipse中maven配置
- spring mvc 中自定义404页面在IE中无法显示favicon.ico问题的解决方法。
- nero刻录软件中文版|nero express刻录软件 (附教程)
- 校验18位身份证号码的正确性
- linux lpte_PC并行口LPT的IO操作(基于WinIo)
- java 判断cmyk_JAI ImageIO的纯Java替代品,用于检测CMYK图像
- centos8 批量修改文件名字
- android音乐播放器开发 SweetMusicPlayer 实现思路