Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2013, 08:21   #1
niixon
Пользователь
 
Регистрация: 03.08.2012
Сообщений: 23
По умолчанию error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл

Подскажите пожалуйста как быть... в конструктор приходит *int и мне нужно создать файл, с именем таким же, что и значение, которое приходит по этому адресу.
Код:
List(int *flightNumber)
{
     char s1[] = ".txt";
     char *s2 = itoa(*flightNumber, s1, 16); // ошибка на этой строчку
     char s3[30];
     strcpy(s3, s1);
     strcat(s3, s2);
     printf("буфер после копирования: \"%s\"\n", s3);
      
}
Текст ошибки: Необработанное исключение в "0x00021a38" в "prog.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000001".

Я погуглил и вот так вот можно делать:
int a;
int *b = 5; // error C2440: инициализация: невозможно преобразовать 'int' в 'int *'
a = b; // error C2440: =: невозможно преобразовать 'int *' в 'int'

Подскажите пожалуйста как правильно к обычной интовой переменной присвоить значение из *int

Последний раз редактировалось Stilet; 14.09.2013 в 09:51.
niixon вне форума Ответить с цитированием
Старый 14.09.2013, 09:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А почему передаешь именно указатель?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2013, 12:36   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Код:
int a = 10;
int b = 0;

int *ptr = &a; //<--- ptr хранит адрес переменной, а не её значение

b = *ptr; //<--- b присвоено значение, которые было взято по адресу, которой хранился в ptr
_Bers вне форума Ответить с цитированием
Старый 14.09.2013, 22:42   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Код:
*flightNumber
Вам нужно передать не значение, хранящееся по адресу, а сам АДРЕС.
Код:
*flightNumber - integer-значение
flightNumber - адрес-значение
Igor95 вне форума Ответить с цитированием
Старый 14.09.2013, 23:35   #5
Vladiger
Пользователь
 
Регистрация: 31.08.2013
Сообщений: 93
По умолчанию

Цитата:
в конструктор приходит *int и мне нужно создать файл, с именем таким же, что и значение, которое приходит по этому адресу.
Слишком много букв. Можно одной строкой имя файла получить, без вот этих strcat()...

Код:
void List(int* flightNumber) {
	FILE *hFile;
	char strFileName[100] = {0};
	sprintf_s(strFileName, sizeof(strFileName), "%d.txt", *flightNumber);
	if (fopen_s(&hFile, strFileName, "w") != NULL) {
		cout << "Не удалось открыть файл " << strFileName;
		return;
	}
	
	//---------------------------
	// Здесь что то пишем в файл
	// Например:
	// fwrite("Hello World!", 12, 1, hFile);
	//---------------------------
	
	fclose(hFile);
}
При работе с файлами можешь использовать fstream, там ещё короче код будет

Код:
void List(int* flightNumber) {
	char strFileName[100] = {0};
	sprintf_s(strFileName, sizeof(strFileName), "%d.txt", *flightNumber);

	ofstream outFile(strFileName);
	outFile << "Привет";
	outFile.close();
}
Vladiger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к элементу, если разные типы данных (int* и int) Fanyuus Общие вопросы C/C++ 4 03.06.2013 23:47
error C2664: PrintArray: невозможно преобразовать параметр 1 из "int **" в "const int **" revizor Помощь студентам 6 07.05.2013 14:07
невозможно преобразовать параметр MIKE11IPME Помощь студентам 5 28.02.2013 03:38
функция float average(int arrray[],int from,int to) yuliyayuliya Помощь студентам 0 25.04.2011 21:55
Невозможно преобразовать параметр Nikita1987 Общие вопросы C/C++ 2 30.06.2010 17:13