Я новичок в C++ и работаю над простым проектом. В основном, где я сталкиваюсь с проблемой, создается файл с номером (int) в имени файла. Как я вижу, мне нужно сначала преобразовать int в строку (или char array), а затем объединить эту новую строку с остальной частью имени файла.C++ int string, concatenate string
Вот мой код так далеко, что не удается скомпилировать:
int n; //int to include in filename
char buffer [33];
itoa(n, buffer, 10);
string nStr = string(buffer);
ofstream resultsFile;
resultsFile.open(string("File - ") + nStr + string(".txt"));
Это дает ошибки пара компиляции (компиляция в Linux):
- itoa не объявлен в этой области
- нет функция соответствия для вызова в 'std :: basic_ofstream char, std :: char_traits char :: open (std :: basic_string char, std :: char_traits char, std :: allocator char)'
Я пробовал совет здесь: c string and int concatenation и здесь: Easiest way to convert int to string in C++ не повезло.
Если я использую метод to_string, я получаю сообщение об ошибке «to_string не является членом std».
Если вы можете позволить себе C++ 11, гораздо проще преобразовать целое число в строку - это использовать 'std :: to_string'. См. Мой ответ для примера. – vitaut