Неправильная запись файла - PullRequest
1 голос
/ 06 марта 2012

Я записываю некоторые строки в файл, используя следующую функцию ...

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 ]

1 голос
/ 06 марта 2012

i не отображается в моем текстовом файле
Это потому, что вы пишете символ с ASCII значением 1.Значение символа '1' отличается и может быть легко получено путем добавления значения '0' к i следующим образом: char c = '0' + i;

символ новой строки не появляется для первогострока, записанная в моем текстовом файле
Первый раз i равен 0, который также является значением завершающего символа '\0'

Ознакомьтесь с этой статьей: C ++ символьные константы

0 голосов
/ 06 марта 2012

Я сомневаюсь, (char)i это путь туда, вы должны попробовать (char)((int)'0' + i)

...