鱼C论坛

 找回密码
 立即注册
查看: 7004|回复: 13

C语言中文件操作

[复制链接]
发表于 2016-11-15 11:51:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 代码农民 于 2016-11-15 16:10 编辑

我在F盘新建了2个文件,路径是“F:\Code\a.txt”和 “F:\Code\b.txt",

a中的内容:
QQ图片20161115114709.png
b中什么都没写。

然后我写了个代码:
  1. #include <stdio.h>
  2. void
  3. main()
  4. {
  5.         FILE *p1,*p2;
  6.         int a;
  7.         char* b;

  8.         p1=fopen("F:\Code\a.txt","r");
  9.         fscanf(p1,"%d%s",&a,b);
  10.         fclose(p1);
  11.         p2=fopen("F:\Code\b.txt","a+");
  12.         fprintf(p2,"%d%s",a,b);
  13.         fclose(p2);
  14. }
复制代码


我的本意是把a里的内容复制到b里,但是程序一直出错,为什么?
QQ图片20161115115049.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-15 12:23:08 | 显示全部楼层
本帖最后由 人造人 于 2016-11-15 12:24 编辑

告诉我,双引号中的反斜杠是什么意思?
"F:\Code\a.txt"
http://blog.163.com/sunshine_linting/blog/static/44893323201181325818165/
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 12:33:13 | 显示全部楼层
人造人 发表于 2016-11-15 12:23
告诉我,双引号中的反斜杠是什么意思?
"F:\Code\a.txt"
http://blog.163.com/sunshine_linting/blog/sta ...

我改成了“"F:\\Code\\a.txt"这样也不行啊....函数原型里不是文件名吗?..
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 12:38:10 | 显示全部楼层
人造人 发表于 2016-11-15 12:23
告诉我,双引号中的反斜杠是什么意思?
"F:\Code\a.txt"
http://blog.163.com/sunshine_linting/blog/sta ...

求告知该怎么写?..
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-15 12:54:46 | 显示全部楼层
代码农民 发表于 2016-11-15 12:33
我改成了“"F:\\Code\\a.txt"这样也不行啊....函数原型里不是文件名吗?..

"F:\\Code\\a.txt"
这样不行吗?
fopen的第一个参数的确是文件名
可是"F:\Code\a.txt" 不是文件名啊(不是C语言中的文件名)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 13:01:47 | 显示全部楼层
人造人 发表于 2016-11-15 12:54
"F:\\Code\\a.txt"
这样不行吗?
fopen的第一个参数的确是文件名

恩..确实不行...
我也不知道该怎么弄了...

  1. #include <stdio.h>
  2. void
  3. main()
  4. {
  5.         FILE *p1,*p2;
  6.         int a;
  7.         char* b;

  8.         p1=fopen("F:\\Code\\a.txt","r");
  9.         fscanf(p1,"%d%s",&a,b);
  10.         fclose(p1);
  11.         p2=fopen("F:\\Code\\b.txt","a+");
  12.         fprintf(p2,"%d%s",a,b);
  13.         fclose(p2);
  14. }
复制代码

F(18NXJ~IC@[W4K)KZUOXML.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-15 13:05:41 | 显示全部楼层
代码农民 发表于 2016-11-15 13:01
恩..确实不行...
我也不知道该怎么弄了...


  1. #include <stdio.h>
  2. void
  3. main()
  4. {
  5.         FILE *p1, *p2;
  6.         int a;
  7.         char* b;

  8.         p1 = fopen("F:\\Code\\a.txt", "r");
  9.         if(p1 == NULL)
  10.         {
  11.                 printf("打不开");
  12.                 getchar();
  13.         }

  14.         fscanf(p1, "%d%s", &a, b);
  15.         fclose(p1);
  16.         p2 = fopen("F:\\Code\\b.txt", "a+");
  17.         fprintf(p2, "%d%s", a, b);
  18.         fclose(p2);
  19. }
复制代码

很有可能是打不开文件,试试这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-15 13:09:52 | 显示全部楼层

  1. #include <stdio.h>
  2. void
  3. main()
  4. {
  5.         FILE *p1, *p2;
  6.         int a;
  7.         char b[512];

  8.         p1 = fopen("F:\\Code\\a.txt", "r");
  9.         if(p1 == NULL)
  10.         {
  11.                 printf("打不开");
  12.                 getchar();
  13.         }

  14.         fscanf(p1, "%d%s", &a, &b);
  15.         fclose(p1);
  16.         p2 = fopen("F:\\Code\\b.txt", "a+");
  17.         fprintf(p2, "%d%s", a, b);
  18.         fclose(p2);
  19. }
复制代码

应该是你想要的结果了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 13:09:53 | 显示全部楼层
人造人 发表于 2016-11-15 13:05
很有可能是打不开文件,试试这个

试了...结果跟我上面的一样....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 13:14:14 | 显示全部楼层
人造人 发表于 2016-11-15 13:09
应该是你想要的结果了

谢谢...成功了..让我想想其中的原因..
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 13:40:59 | 显示全部楼层
人造人 发表于 2016-11-15 13:09
应该是你想要的结果了

想不明白..为什么数组就可以...字符指针就不行?
难到是指针相临的存储空间不让用么...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-15 13:50:35 | 显示全部楼层
人造人 发表于 2016-11-15 13:09
应该是你想要的结果了

求告知为什么..
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-15 17:47:59 | 显示全部楼层
代码农民 发表于 2016-11-15 13:40
想不明白..为什么数组就可以...字符指针就不行?
难到是指针相临的存储空间不让用么...

你应该知道指针是什么
http://bbs.fishc.com/forum.php?m ... peid%26typeid%3D584
知道了指针是什么,这个问题根本就算不上是问题^_^
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-19 17:11:38 | 显示全部楼层
人造人 发表于 2016-11-15 17:47
你应该知道指针是什么
http://bbs.fishc.com/forum.php?mod=viewthread&tid=71654&extra=page%3D1%26fil ...

谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-16 18:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表