fscanf如何读取文件中保存的多行数据

wxf54318 2012-04-19 07:45:21
文件中的数据类似这样的
123.456,
235.89,
947,345
请问如何用fscanf读取每行数据并存储到一个数组中,
我用
for(int i =0;i<n;i++)
fscanf(fp,"%lf",aa[i]);
每次只是重复读取第一行数据
...全文
2418 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tc5123 2012-04-22
  • 打赏
  • 举报
回复
int i=0;
while(!feof(p)) //p为句柄
{
fscanf(p,"%s\n",a[i]);
i++;

}
可以把每行存入到数组中
qq120848369 2012-04-19
  • 打赏
  • 举报
回复
[User:liangdong Time:22:58:15 Path:~/c]$ cat main.c 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[]) {
char buf[100];

FILE *fp = fopen("data.txt", "r");

if (!fp) {
return -1;
}

while (fgets(buf, 100, fp) != NULL) {
int len = strlen(buf);
if (buf[len - 1] == '\n') {
buf[len - 1] = '\0';
}
char *sep = strchr(buf, ',');
if (sep != NULL) {
*sep = '\0';
}
printf("%s\n", buf);
}

return 0;
}
qq120848369 2012-04-19
  • 打赏
  • 举报
回复
[User:liangdong Time:22:58:07 Path:~/c]$ ./main
123.456
235.89
947
[User:liangdong Time:22:58:11 Path:~/c]$ cat data.txt
123.456,
235.89,
947,345
[User:liangdong Time:22:58:15 Path:~/c]$
evencoming 2012-04-19
  • 打赏
  • 举报
回复
for(int i =0;i<n;i++)
fscanf(fp,"%lf%*[^0-9.]",&aa[i]);

69,371

社区成员

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

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