【发布时间】:2014-08-09 07:34:26
【问题描述】:
我需要在.txt 文件上写入和读取一些文本,使用fprintf、fscanf 和fopen 作为主要功能。
我将它们全部收集在单个头文件中的单个 void 函数中。这个函数应该读写txt文件。
这是代码:
void scrivi_valori(int variabili[], int num_variabili, int controlloprimocaso){
FILE * testo;
testo = fopen ("risultati.txt","w+");
if(controlloprimocaso==0){
fprintf(testo, "%d-", 1);
for(i=0;i<num_variabili;i++){
fprintf(testo, "%d.", variabili[i]);
}
fprintf(testo, "-%d\n", 1);
fclose(testo);
}
}
但它不起作用,risultati.txt 完全是空白的。真正的问题是我将代码移到了 .cpp 文件中并且它工作正常,risultati.txt 写得很完美。
所以我的问题是:为什么这个函数在 .cpp 文件中有效,而在 .h 文件中无效?
谢谢大家,但我解决了 :) 我将标题中的所有函数放在一个 file.h 中。 我也使用“w”模式而不是“w+”模式打开文件。 这样做,程序可以完美运行! 谢谢大家:)
【问题讨论】:
-
你在哪里使用
fscanf? -
对我来说这看起来像纯 C
-
你有编译错误信息吗?您的代码存在严重问题。
-
上帝,关于 i。顺便说一句,编译没有问题。
-
你为
controlloprimocaso变量传递了什么值?您必须将其传递给 0 才能打印任何内容。你通过了 0 分吗?