文件读取-c语言,用fgets将文件的数据读取后,如何对返回的数据进行操作,例如排序

问题描述

c语言,用fgets将文件的数据读取后,如何对返回的数据进行操作,例如排序

代码如下,我做法是 将fgets(readline, N, fp) 返回的readline 用atoi函数转为整型后赋给数组list,然后对list数组中的数据进行排序。

但实际运行下来,没有得到想要的结果,从printf结果看,atoi函数未能将readline 中的值转为整型,请各位大虾不吝指教,如何才能拿到fgets返回的readline的值,然后进行排序?
#define N 256
#define SIZE 6
int list[SIZE];
int data;
int main()
{ void save();
int i,j,k,temp;
FILE *fp;
char *filename = "z1.txt";
char readline[N] = {''};
if ((fp = fopen(filename, "r")) == NULL) {
fprintf(stderr, "%sopenfailed.n", filename);
exit(EXIT_FAILURE);
}
k=0;
while ( fgets(readline, N, fp) != NULL ) {
list[k] = atoi(readline); //->想将读到的字符串转为整型
printf("atoi=%d",atoi(readline); //->从输出结果看,未将readline中的字符串转换为整型数据,应该如何写才对?
printf("list[s]=%s",list[k]);

k++;
}
fclose(fp);
//读取的数据进行排序
for(i=0;i
for(j=i;j
if(list[i]
{temp=list[i];
list[i]=list[j];
list[j]=temp;
}
printf("After sorting:n");
for(i=0;i
printf("%dn",list[i]); //->此处的输出结果看,不是文件中读到的数据,数据很奇怪
return 0;
}

解决方案

你确定没有读到空格分隔符什么的,有这些的话atoi 会失效

时间: 2024-09-28 13:59:10

文件读取-c语言,用fgets将文件的数据读取后,如何对返回的数据进行操作,例如排序的相关文章

c语言-C语言 用fgets()或fscanf()分别读取两个文件流出错

问题描述 C语言 用fgets()或fscanf()分别读取两个文件流出错 C Primer Plus第十三章第7题a:编写一个打开两个文件的程序,让程序打印第一个文件的第一行,第二个文件的第一行,第一个文件的第二行,第二个文件的第二行,以此类推,直到打印完行数较多的文件的最后一行. 我尝试在while循环中用两个fgets()分别读取两个文件的一行,然后用fputs()打印,结果出来一堆"烫"(乱码),文件的正确内容也参杂在其中.以下是部分程序代码和截图(两个文件中的内容分别是A(回

c语言-关于使用C语言自己写pcap文件,使用wireshark读取的问题

问题描述 关于使用C语言自己写pcap文件,使用wireshark读取的问题 命令行下netsh trace命令抓取的网络包放在了.etl文件里,怎么提取抓到的数据包,并且把它对应的进程ID从etl文件中拿到 命令如下: C:windowssystem32> netsh trace start capture=yes tracefile="e: est.etl" *******开始关联(就是在抓取 当前计算机上de网络数据包) C:Wndowssystem32> netsh

让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码           在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法.   1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const ch

C语言中的各种文件读写方法小结_C 语言

前言    找工作的时候,曾经用C语言练习过一段时间的算法题目,也在几个还算出名的OJ平台有过还算靠谱的排名.之前以为C语言只限于练习一下算法,但是工作中的一个问题解决让我意识到C语言的用处还是非常广泛的.下面介绍一下,如果用C语言来操作文件保存一个字符串,和读取一个字符串.算法中往往都是printf来打印出结果,但是真实工作中往往通过文件来进行一些持久化的存储工作. C-File I/O    文件的I/O操作是每一门语言的重点,因此这里我先来介绍一下如何用C语言去进行文件的I/O操作. 文件

PHP按行读取、处理较大CSV文件的代码实例

 这篇文章主要介绍了PHP按行读取.处理较大CSV文件的代码实例,需要的朋友可以参考下 对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象.   为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的.   下面这个函数是读取CSV文件中指定的某几行数据:    代码如下: /**  * csv_get_lines 读取CSV文件中的某几行数据  * @param $csvfile csv文件路径  * @param $lines 读取行数

关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教

问题描述 关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教 下面便是一个更新卡信息文件数据的函数updateCard int updateCard(const char* CardPath,const Card* pcard,int nIndex) {//更新卡信息文件中的数据,CardPath为文件路径,pcard为指向要更新的卡信息结点的指针,nIndex为卡信息在文件中的索引号(即在卡信息文件中的行数) FILE* fp = NULL; long

用C语言实现统计一个文件夹中各种文件的比例

原文:用C语言实现统计一个文件夹中各种文件的比例 <UNIX环境高级编程>中的程序清单4-7就介绍了如何实现递归地统计某个目录下面的文件!我刚开始看过它的代码后,觉得照着敲太没意思了,所以就合上书自己写了一遍!为此还写了一篇博文,这是博文地址:在linux下用C语言实现递归查看某个目录中的所有文件[CSDN]! 今天做<Unix环境高级编程>的课后题,看到题目4.11这里提供了一种新的实现这个程序的思路,那就是每回读到一个目录,就通过chdir函数进入到这个目录,然后再通过open

c 指针 文件输入输出-C语言fprintf和fscanf问题

问题描述 C语言fprintf和fscanf问题 这段代码是为了打开一个文件,用fprintf输入字符串,在用fscanf返回,最后看fscanf的返回值.但是这段程序一运行就出错,猜测是指针访问问题,但是不明白原理.请大家帮忙看下,谢谢! 出错提醒是:0xCDCDCDCD 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 执行位置 0xCDCDCDCD 时发生访问冲突. 代码如下 #include #include int main(voi

C++读入XML文件示例_C 语言

最近要做一个VRP的算法,测试集都是放在Xml文件中,而我的算法使用C++来写,所以需要用C++来读取Xml文件. 在百度上搜"C++读取Xml文件",可以出来很多博客,大多数是关于tinyXml的,所以这篇博文也是讲述如何用tinyXML来读取XML文件. tinyXml是一个免费开源的C++库,可以到官网上下载:https://sourceforge.net/projects/tinyxml/. 下载下来解压之后,可以看到下面这些文件: 我是在windows下用VS来写C++的,按