如何用c语言读取txt中的数据信息

yynwhu 2012-05-21 09:39:13
文本格式大致是:
add 123456 fdfdfjdka
fddf 123456 fdfdfdf
.. .. ....
该怎么把每一个字符串(不是每一行)存入一个二维数组并且按格式输出?(用c语言)
...全文
748 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yynwhu 2012-05-23
  • 打赏
  • 举报
回复
额,貌似r=sscanf(ln,"%39s%39s%39s",a[i][0],a[i][1],a[i][2]);
改成r=sscanf(ln,"%39s%39s%[^\n]39s",a[i][0],a[i][1],a[i][2]);
谢谢楼上的回答了--
yynwhu 2012-05-23
  • 打赏
  • 举报
回复
谢谢楼上的回答,,,现在我的问题是如果第三列是一个带空格的字符串(这就不是只有三列了吧),,我还想只用三列处理,因为第三列格式是一样的字符串(但其中会有空格),我该怎么办?
赵4老师 2012-05-23
  • 打赏
  • 举报
回复
r=sscanf(ln,"%39s%39s%*[ ]%39[^\n]",a[i][0],a[i][1],a[i][2]);
帅得不敢出门 2012-05-21
  • 打赏
  • 举报
回复
getline得到一行
strtok 根据空格得到各个单词 依次存放入相应数组。

或者fgetc一个个字符判断,存入相应变量,遇到空格变量读取完成, 开始下一个变量。
Furney 2012-05-21
  • 打赏
  • 举报
回复
用fopen打开文件,fread读取一行信息,sscanf对读取的信息进行解析
赵4老师 2012-05-21
  • 打赏
  • 举报
回复
#include <stdio.h>
#define MAXLINES 10000
FILE *f;
char ln[120];
char a[MAXLINES][3][40];
int i,r,n;
void main() {
f=fopen("in.txt","r");
if (NULL==f) {printf("Can not open file in.txt!\n");return;}
i=0;
while (1) {
if (NULL==fgets(ln,120,f)) break;
r=sscanf(ln,"%39s%39s%39s",a[i][0],a[i][1],a[i][2]);
if (3!=r) printf("Line %d Format Error:%s",i+1,ln);
i++;
if (i>=MAXLINES) break;
}
fclose(f);
n=i;
for (i=0;i<n;i++) {
printf("%08d:%-40s%-40s%-40s\n",i,a[i][0],a[i][1],a[i][2]);
}
}

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧