Readfile заканчивается после того, как найден пробел между символами - PullRequest
0 голосов
/ 01 марта 2011

Мой код здесь читает путь из файла, изменяет его (добавляя обратную косую черту, если обнаруживает обратную косую черту) и записывает его обратно в другой файл.Но в результате получается небольшая ошибка.

пример выполнения:

текстовый файл A -> c:\program files\work\exe

текстовый файл B -> c:\\program

Результат, который я ожидаю получить в текстовом файле B, выглядит следующим образом:

текстовый файл A -> c:\\program files\\work\\exe

//read path data from text file 
char str[256];
fstream file_op("C:\\PROGRA~1\\logdata",ios::in);
file_op >> str;
file_op.close();

char newPath[MAX_PATH];
int newCount = 0;
for(int i=0; i < strlen(str); i++)
{
 if(str[i] == '\\')
   {
    newPath[newCount++] = str[i];
   }
   newPath[newCount++] = str[i];
}
newPath[newCount]=0;
ofstream out("c:\\path.txt", ios::out | ios::out);
out.write(newPath, strlen(newPath));
out.close();

1 Ответ

0 голосов
/ 01 марта 2011

Проблема: file_op >> str; Это будет читать символы до (но не включая) любые пробелы и помещать их в строку. Если вы поместите его в цикл, вы обнаружите, что получите следующее «слово», но пробел будет пропущен.

Но есть и другой способ. Предполагая, что путь находится в одной строке, вы можете сделать:

std::getline(file_op, str)

Это будет читать всю строку в str.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...