Форум программистов, компьютерный форум CyberForum.ru

Компиляция (gcc) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
07.12.2011, 22:53     Компиляция (gcc) #1
Добрый вечер!
После компиляции текстовый файл становится вдруг двоичным, как следствие его невозможно открыть для исправлений. Почему?

Bash
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
struct klass
{ char fam;
 int mark;
 float nomer;
};
 int main (void)
{ struct klass a={"max",5,6.4};
printf("f=%s" "m=%d" "n=%f", a.fam, a.mark, a.nomer);
return(0);}
затем выводит ошибки:
Код
a.c:8:19: warning: multi-character character constant
a.c: In function ‘main’:
a.c:8: warning: overflow in implicit constant conversion
a.c:9: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’
и вот потом не могу открыть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2011, 22:53     Компиляция (gcc)
Посмотрите здесь:

C++ gcc VS DEV-C++ 4.9.9.2
компиляция gcc и MSVC C++
C++ gcc в c++ VS
C++ Пораздельная компиляция и повоторное переопределением в gcc
gcc компиляция C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
07.12.2011, 23:02     Компиляция (gcc) #2
C++
1
char* fam;
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
07.12.2011, 23:06     Компиляция (gcc) #3
Цитата Сообщение от Яна_Max Посмотреть сообщение
printf("f=%s" "m=%d" "n=%f", a.fam, a.mark, a.nomer);
return(0);}
C
1
printf("f=%s m=%d n=%f", a.fam, a.mark, a.nomer);
Лишние кавычки

Добавлено через 1 минуту
А уж как он стал двоичным - ума не приложу!
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
07.12.2011, 23:07  [ТС]     Компиляция (gcc) #4
gooseim, использовать указатель? (или что это теперь)
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
07.12.2011, 23:09     Компиляция (gcc) #5
Цитата Сообщение от gooseim Посмотреть сообщение
char* fam;
и это тоже.
А может быть надежней char fam[4];
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
07.12.2011, 23:10  [ТС]     Компиляция (gcc) #6
Цитата Сообщение от gooseim Посмотреть сообщение
C++
1
char* fam;
Ошибки пропали, но все равно становится двоичным.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
07.12.2011, 23:13     Компиляция (gcc) #7
Цитата Сообщение от Байт Посмотреть сообщение
printf("f=%s" "m=%d" "n=%f", a.fam, a.mark, a.nomer);
Хм... По стадарту это допустимо.
Но чтоб голова не болела, я бы этими заморочками без нужды баловаться бы не стал.
Как и такой инициализацией простых структур.
Или это проверка дохлого страуса на вшивость?
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
07.12.2011, 23:15     Компиляция (gcc) #8
Видимо, какой-то юникодный символ. Скопируйте код в какой-нибудь текстовый редактор и сохраните в ascii формате.
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
07.12.2011, 23:20  [ТС]     Компиляция (gcc) #9
Байт, а почему [4] а не [3]?

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
Как и такой инициализацией простых структур.
а какой лучше?

Цитата Сообщение от Байт Посмотреть сообщение
Или это проверка дохлого страуса на вшивость?
не совсем поняла...

Добавлено через 1 минуту
Упс....поняла почему становится двоичным..хех. Мой косяк! Спасибо всем за советы! Очень помогли
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
07.12.2011, 23:52     Компиляция (gcc) #10
Цитата Сообщение от Яна_Max Посмотреть сообщение
Или это проверка дохлого страуса на вшивость?
Имеется в виду Страуструпп, а просторечии ........

Добавлено через 2 минуты
Цитата Сообщение от Яна_Max Посмотреть сообщение
Байт, а почему [4] а не [3]?
терминатуется нулем
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
07.12.2011, 23:55     Компиляция (gcc) #11
Яна_Max, может вы покажете команду, с помощью которой компилируете? простейший вариант
Bash
1
2
gcc file.c #компиляция
./a.out   #старт программы
Добавлено через 1 минуту
Цитата Сообщение от Яна_Max Посмотреть сообщение
затем выводит ошибки:
это не ошибки, а предупреждения. Компилятор сильно уж крутой, умом наделили
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
07.12.2011, 23:59     Компиляция (gcc) #12
alkagolik, У меня один клиент сделал так: proga.exe >proga.exe
Почему-то proga после этого работать перестала
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 00:11  [ТС]     Компиляция (gcc) #13
Цитата Сообщение от Байт Посмотреть сообщение
Имеется в виду Страуструпп, а просторечии ........
Оу, нет.Просто пытаюсь разобраться в структурах...(

Добавлено через 5 минут
Цитата Сообщение от alkagolik Посмотреть сообщение
Яна_Max, может вы покажете команду, с помощью которой компилируете?
Да,да я там разобралась уже.) Спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2011, 00:28     Компиляция (gcc)
Еще ссылки по теме:

Компиляция gcc C++
GotoXY в GCC C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.12.2011, 00:28     Компиляция (gcc) #14
Цитата Сообщение от Байт Посмотреть сообщение
proga.exe >proga.exe
самое интересное чего он ждал от этого?
Yandex
Объявления
08.12.2011, 00:28     Компиляция (gcc)
Ответ Создать тему
Опции темы

Текущее время: 10:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru