#include<stdio.h>
int main()
{
FILE *fp=fopen("D:\\c\\data.txt.txt","r"); //打开一个已有文件,允许读取
int arr[10];
//int a=0;
if(fp==NULL){
return 0;
}
while(!feof(fp))
{
fgets(arr,10,fp);
}//feof检查文件流是否读到了文件尾 (返回非零值代表达到文件尾)
int i;
for(i=0;i<10;i++){
printf("%d ",arr[i]);
}
fclose(fp);//关闭文件
return 0;
}
为什么我放入数组之后 输出结果为什么和文件里面的不一样呀😭
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 看看我给你改的:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *fp = fopen("D:\\c\\data.txt", "r"); int arr[10]; char line[256]; if (fp == NULL) { printf("打开文件失败\n"); return 0; } if (fgets(line, sizeof(line), fp) != NULL) { int i = 0; char *token = strtok(line, ","); while (token != NULL && i < 10) { arr[i++] = atoi(token); token = strtok(NULL, ","); } int j; for (j = 0; j < i; j++) { printf("%d ", arr[j]); } } fclose(fp); return 0; }
你遇到的问题是因为fgets函数用于读取文本行时,它是按字符读取的,而不是将整行数据直接存入数组的。fgets函数的第一个参数应该是指向字符数组的指针,而你将整型数组arr的指针传入了fgets函数。
如果你想一次读取整行数据并将其存储到整型数组中,可以使用fscanf函数,它可以按特定的格式读取数据。下面是使用fscanf读取整行数据的代码:#include <stdio.h> int main() { FILE *fp = fopen("D:\\c\\data.txt", "r"); if (fp == NULL) { printf("打开文件失败\n"); return 0; } int arr[10]; int i = 0; while (fscanf(fp, "%d,", &arr[i]) == 1) { i++; if (i >= 10) break; } fclose(fp); int j; for (j = 0; j < i; j++) { printf("%d ", arr[j]); } return 0; }
这是运行结果图:
如果我的回答对你有帮助,能否给我一个采纳谢谢本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表