to专家

ACEspaceWalker 2012-04-11 08:05:21
下面这4个问题我放在论坛上好久了,都没有得到满意的答案,希望专家能够解决。

1、用c语言编写头文件和与头文件对应的源文件之后,在main函数中实现头文件中的函数时,编译器报错:"main.obj :error LINK2019: 无法解析的外部符号 "void _cdecl Frequency(void)" (?Frequency@@YAXZZ), 该符号在函数_main 中被引用"。把源代码的保存格式用.cpp替换原来的.c格式就能够解决以上问题,这是为什么?用vs编程的。
还有就是有的程序在tc上能够运行为什么在vs上运行不了。

2、用c语言编写的程序存储为cpp文件格式有什么影响?

3、"fp = fopen("E:\\study\\temp.txt","w");"文件存在而且路径正确,但为什么打开失败?

4、实际编程时,什么原因导致从一个文件中提取数据输出到另外一个文件中时出现数据缺失的现象?
如:
#include <stdio.h>
void main()
{
FILE *fp1, *fp2;
fp1 = fopen("temp.txt","r");
fp2 = fopen("temp1.txt","w+");
while(fgetc(fp1)!=EOF)
fputc(fgetc(fp2),fp);
fclose(fp);
}
其中getw和putw函数操作也出现了同样的问题。
我用的是win7,这有关系吗?
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wushichao1987 2012-04-11
  • 打赏
  • 举报
回复
1. 估计与vs相关,不懂的飘过,不过说点“思路问题”,如果没有特殊原因的话C变成还是用GNU的工具链,纯是学习C语言的话有很多windows下也可用的环境,devc++ , codeblocks等。不过最好还是在linux下,makefile也自己写,否则真用c工作的话会有些吃力,C多数还是嵌入式、类linux系统下的编程,基本没有什么IDE的,最多source insight
2. 具体环境具体分析了,2楼说的八九不离十了,如果你没用IDE的,makefile神马的都自己搞,你不会问这个问题
3. 不知道,具体问题具体分析,win7的话看看权限对不对(估计权限还是靠谱的)
4. temp文件内容abcdefg , 初始时“文件指针”(别问我这名词是否专业,没看加引号呢嘛,呵呵)指向a
while(fgetc(fp1)!=EOF) //读取a,但是你什么都没干
fputc(fgetc(fp2),fp); //读取b,写入temp1
所以你写进去的字符是bdf,其他字符都丢了
evencoming 2012-04-11
  • 打赏
  • 举报
回复
1. c方式编译的代码.
那么声明的时候改为 extern "C" void _cdecl Frequency(void);

2.一般.cpp格式的默认是c++编译器来编译的.所以产生的区别就是c和c++的区别了.

3.如果要复制,一般是用二进制方式打开.也就说
打开方式改为
fp1 = fopen("temp.txt","rb");
fp2 = fopen("temp1.txt","wb+");
还有,代码有点问题
改为
int ch;
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp2);

69,370

社区成员

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

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