String 文件写入不正确

String 文件写入不正确,string,visual-c++,text-files,String,Visual C++,Text Files,我正在使用以下函数将一些字符串写入文件 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 ");

我正在使用以下函数将一些字符串写入文件

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());
}
当我希望它看起来像这样时:

---NEW CYCLE 1---

Cycle Done!

....
i
未显示在我的文本文件中

这是因为您正在使用值
1
编写字符。字符
'1'
的值是不同的,可以通过将
'0'
的值添加到
i
中来轻松检索,如下所示:
char c='0'+i

在我的文本文件中写入的第一个字符串不会出现换行符
第一次
i
等于
0
,这也是终止字符
'\0'

查看本文:

i
未显示在我的文本文件中
这是因为您正在使用值
1
编写字符。字符
'1'
的值是不同的,可以通过将
'0'
的值添加到
i
中来轻松检索,如下所示:
char c='0'+i

在我的文本文件中写入的第一个字符串不会出现换行符
第一次
i
等于
0
,这也是终止字符
'\0'

查看这篇文章:

我怀疑
(char)I
是去那里的路,你应该试试
(char)((int)'0'+I)
我怀疑
(char)I
是去那里的路,你应该试试
(char)((int)'0'+I)

---NEW CYCLE 1---

Cycle Done!

....