我正在使用以下函数将一些字符串写入文件...
void writeText(const char* desc){
FILE * pFile;
pFile = fopen ("CycleTestInfo.txt","a+");
fputs (desc,pFile);
fclose(pFile);
}
...在for循环中:
for(int i=0; i<numCycles; i++){
string cycle("---NEW CYCLE ");
cycle+=(char)i;
cycle+= "---\r\n";
writeText(cycle.c_str());
}
我有两个问题。i
没有显示在我的文本文件中,并且新行没有显示在我的文本文件中写入的第一个字符串。例如,如果numCycles为4,我在文本文件中得到以下输出。
---NEW CYCLE Cycle Done!
---NEW CYCLE ---
Cycle Done!
---NEW CYCLE ---
Cycle Done!
---NEW CYCLE ---
Cycle Done!
当我希望它看起来像这样:
---NEW CYCLE 1---
Cycle Done!
....
答案 0 :(得分:1)
i
未显示在我的文本文件中
这是因为您正在使用ASCII值1
编写字符。字符'1'
的值不同,可以通过将'0'
的值添加到i
来轻松检索,如下所示:char c = '0' + i;
在我的文字文件中写的第一个字符串没有出现换行
第一次i
等于0
,这也是终止字符'\0'
查看此文章:C++ Character Constants
答案 1 :(得分:0)
我怀疑(char)i
是去那里的方法,你应该尝试(char)((int)'0' + i)