社区
C语言
帖子详情
请问 如何读取每行第二个数据? 如何实现这样的要求?
bborn
2005-07-26 09:00:23
数据格式是这样的
data1,data2,........
....................
数据是用逗号隔开的
每行的个数不知道 但是是统一的
如何按要求读入每行 特定列的数据?
...全文
254
21
打赏
收藏
请问 如何读取每行第二个数据? 如何实现这样的要求?
数据格式是这样的 data1,data2,........ .................... 数据是用逗号隔开的 每行的个数不知道 但是是统一的 如何按要求读入每行 特定列的数据?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hjf1010
2005-07-29
打赏
举报
回复
写错了,fscanf(fp,"%d",buf);应该是fscanf(fp,"%s",buf);
粗心大意!!!!!
hjf1010
2005-07-29
打赏
举报
回复
楼主还没有确定使用那种方案吗??
昨天特意试验了一下.
在文本文件中,数字和字符都可以读为字符串,比如
fscanf(fp,"%d",buf);可以将一行读到缓冲区中,遇到"\n"结束,但是不把"\n"读到字符串中;
但是也可以使用fscanf进行格式化读取,楼主不是想读第一个逗号后第二个逗号前的数据码
用fscanf(fp,"%d,%d,%s\n",&iTmp,&num,buf);可以实现对每行的格式化读取,num就是需要的数据,第二个逗号后的所有东西读到缓冲区中.
fgets可以实现和fscanf相似的功能,不同点,fgets可以控制每次读取的字符数,遇到"\n"也结束,但是把"\n"也读到缓冲区.
综上所述,如果文档是格式化比较好的用fscanf完全可以满足楼主的要求
bborn
2005-07-29
打赏
举报
回复
加80分结贴
bborn
2005-07-29
打赏
举报
回复
谢谢楼上各位 尤其是 黑色狂人 我看到那个帖子你的程序了
我试一下 弄好了就揭帖
bborn
2005-07-28
打赏
举报
回复
问题是我不是甲方
LoveYouJustOneDay
2005-07-28
打赏
举报
回复
气死人啊
这么简单的东西
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
char sd[1000], *p, *q;
int data[100], index=0, i;
fp=fopen("test.txt", "r");
while( fgets(sd, 1000, fp) )
{
p=sd;
while(*p++ != ',');
q=p;
while( (*q != ',') && (*q != '\0') ) q++;
*q = '\0';
sscanf(p, "%d", &data[index++]);
}
fclose(fp);
for(i=0; i<index; i++)
printf("%d ", data[i]);
system("PAUSE");
return 0;
}
test.txt
1,15,16,17
1,1
1,2,3
4,5,6,7,8
45,46
101,102,103
如果数据是字符串
sscanf( )里的 %d 用 %s
data[i]用指针
char *data[100];
data[i] 根据 字符串的长度动态分配
sjw7474235
2005-07-28
打赏
举报
回复
你可以在写文本时候给每个数据规定长度。读取的时候不就简单了吗。。
我用vb实现过。当时不会数据库只能用这个方法来存取数据。
bborn
2005-07-28
打赏
举报
回复
还是不行 再等几天
ken0426
2005-07-26
打赏
举报
回复
楼主说的应该是CSV格式吧!
zyfire88
2005-07-26
打赏
举报
回复
楼主的数据是放哪的,说清楚一点啊
login__whf
2005-07-26
打赏
举报
回复
up
megaboy
2005-07-26
打赏
举报
回复
楼主的数据很可能不是字符形式存储的,假设都是int数据,可以用:
fscanf("%d,",&data[0]);来读取。
csjOscar_boco
2005-07-26
打赏
举报
回复
char ch;
char temp[20];
打开文件
while(不是文件尾){
while (读取字符ch不是','){
指向下一个字符;
}
i=0;
while (读取字符ch不是',')
{
temp[i]=ch;
i++;
}
temp[i]='\0';
判断回车到下一行;
}
代码自己写,很简单
hjf1010
2005-07-26
打赏
举报
回复
以下是算法:
先用fgets()读取一行到一个数组
再用strstr()找到第一个','
用一个指针ptr指向这个逗号后一位,再以这个指针ptr及strstr()找到','
读取ptr指向的、逗号之前的字符
循环,依次类推,得到所有行
ywchen2000
2005-07-26
打赏
举报
回复
写个split函数
WecanHuang
2005-07-26
打赏
举报
回复
那就找逗号,记录逗号的个数和位置
PMsg
2005-07-26
打赏
举报
回复
原数据存储在哪?文件里还是数组
要是数组就比较简单了 2D数组
for(i=0;i<n;i++)
xx[i][2] //i行的第2个
LoveYouJustOneDay
2005-07-26
打赏
举报
回复
如果data不是字符串
fgets读入一行到内存
sscanf( )一下
把第一个数据用一个临时变量吸收掉就好了
yyy790601
2005-07-26
打赏
举报
回复
每行数据个数不固定,怎么fscanf?
我同意楼上前面这个说法:
以下是算法:
先用fgets()读取一行到一个数组
再用strstr()找到第一个','
用一个指针ptr指向这个逗号后一位,再以这个指针ptr及strstr()找到','
读取ptr指向的、逗号之前的字符
循环,依次类推,得到所有行
hjf1010
2005-07-26
打赏
举报
回复
fscanf(fp,"%d,%d,%s\n",&temp,&dest,str)
加载更多回复(1)
java的socket
读取
一行就结束运行了?使用这种方法可以
读取
多行
数据
!
第二种(可以
读取
多行
数据
) 引出问题 写一个socket的公共方法,结果发现socket
读取
一行
数据
就结束了,百思不得其解。 在网上也找了一些资料,很多也有坑,这里贴出来自己用的两种方法,以后就不用一直找解决方案...
MATLAB怎样有效
读取
excel文件中的
数据
?
1.使用函数xlsread
读取
单个文件 ...其中,
数据
区域的选取规则是:对表格前几个含有非数值的行(列)直接忽略,不算入
数据
区域;另外如果在
数据
区域中含有非数值的单元,将其处理为nan。 (2)num = ...
python:跳过第一行
读取
excel表格
数据
在做自动化测试时,需要将测试
数据
存放在excel表格中,
读取
数据
的时候,我们只需要
读取
非表头的内容即可,那么如何跳过表头
读取
excel表格的
数据
呢? 接下来将通过以下几种方法来
实现
我们的需求 一、方法一:普通...
python
实现
读取
文件倒数第n行
python
实现
读取
文件倒数第n行
Python
实现
读取
多个/批量txt文件合并成一个txt(示例为tcga
数据
处理)
实现
批量txt的
读取
并合并到一个txt中进行输出,主要用于tcga
数据
的预处理
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章