gpt4 book ai didi

c - 写入文件的函数在 .cpp 文件中有效,但在 .h 文件中无效

转载 作者:行者123 更新时间:2023-11-30 17:30:15 26 4
gpt4 key购买 nike

我需要使用 fprintffscanffopen.txt 文件上写入和读取一些文本> 作为主要功能。

我将它们全部收集到单个头文件中的单个 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+”模式打开文件。这样程序就完美运行了!谢谢大家:)

最佳答案

这可能很愚蠢,但是您确定在代码中包含了 a.h 吗?我的意思是你有: #包括“啊”在你的 .cpp 代码中你是否使用它?因为它至少对我来说工作得很好。

这对我有用:.cpp 文件:

#include <stdio.h>
#include <cstdlib>
#include "header.h"

main()
{
int test[2];
test[0]= 3;
test[1]=6;
scrivi_valori(test,2,0);
return 0;
}

和 header.h 文件

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(int i=0;i<num_variabili;i++)
{
fprintf(testo, "%d.", variabili[i]);
}
fprintf(testo, "-%d\n", 1);
fclose(testo);
}
}

请注意,我需要声明

关于c - 写入文件的函数在 .cpp 文件中有效,但在 .h 文件中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25216332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com