文件写入不正确

时间:2012-03-05 20:20:38

标签: 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 ");
    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!

....

2 个答案:

答案 0 :(得分:1)

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

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

的值

查看此文章:C++ Character Constants

答案 1 :(得分:0)

我怀疑(char)i是去那里的方法,你应该尝试(char)((int)'0' + i)