You can’t directly use printf() function as in Java. You should tell the compiler that you are going to use the input/output stream. You can tell it in this line:
#include <stdio.h>
and also you should enter this line at the end of the source code:
return 0;
this will tell the compiler :
«If the program succeed It will return 0 otherwise It will return any other number»
This means if your program is successful main() function will return 0. Then the compile know the program is Ok.
Then at last your complete code is:
#include <stdio.h>
int main() {
printf("Hello world");
return 0;
}
To compile this and see the word «Hello World», just save this file as a .c file and Open cmd in your program directory and type
gcc hello.c -o hello && hello
(Replace the ‘hello.c’ with your filename, and ‘hello’ with the name you want to put with your .exe file)
Remember My computer is Windows. And this compile code is for windows. If your OS is UNIX like OS. then use this code to compile:
gcc hello.c -o hello
./hello
Почему-то компилируется другое сообщение, в чем дело?
Собственно, вряд ли дело в коде, скорее я криворукий)
#include "std_lib_facilities.h"
int main()
{
cout << "Введите ваше имя(и нажмите 'enter'):n";
string firts_name;
cin >> firts_name;
cout << "Привет, << first_name << "!n";
}
-
Вопрос заданболее трёх лет назад
-
394 просмотра
cout << «Привет, << first_name << «!n»;
Вижу ошибку. Вы тоже приглядитесь.
Видимо, компиляция не проходит и запускается последний рабочий вариант программы.
Функция main должна возвращать значение. У вас нет return
#include "std_lib_facilities.h"
Вы уверены, что скопировали в проект файл std_lib_facilities.h
и подключили его должным образом?
Пригласить эксперта
cout << "Привет, " << first_name << "n";
Компилятору Visual Studio C++ нужно некоторое время, чтобы прогреться, поэтому какое-то количество раз может компилироваться закладка Кернигана-Ритчи, это самый ваш Hello World.
-
Показать ещё
Загружается…
22 июн. 2023, в 00:26
2000 руб./за проект
21 июн. 2023, в 23:43
5000 руб./за проект
21 июн. 2023, в 23:34
10000 руб./за проект
Минуточку внимания
Home »
C programs »
C common errors programs
Here, we will learn why an Error: ‘Hello’/Text undeclared while printing Hello world using printf() and how to fix it in C programming language?
Submitted by IncludeHelp, on September 08, 2018
While printing «Hello world», if this error ‘Hello’ undeclared occurred that means Hello is supplied to the compiler as a variable not as a text/string.
This is possible only, when starting double quote is missing inside the printf(). To fix this error, you should take care of double quotes; place the constant string/text in double quotes.
Example:
#include <stdio.h> int main(void) { //closing double quote is missing printf(Hello world"); return 0; }
Output
prog.c: In function ‘main’: prog.c:4:9: error: ‘Hello’ undeclared (first use in this function) printf(Hello world"); ^~~~~ prog.c:4:9: note: each undeclared identifier is reported only once for each function it appears in prog.c:4:15: error: expected ‘)’ before ‘world’ printf(Hello world"); ^~~~~ prog.c:4:20: warning: missing terminating " character printf(Hello world"); ^ prog.c:4:20: error: missing terminating " character printf(Hello world"); ^~~ prog.c:6:1: error: expected ‘;’ before ‘}’ token } ^
What happens, if we use single quote instead of double code in starting of the text/string?
Missing terminating ‘ character error will be thrown.
How to fix?
To fix this error, close the text/string/Hello within the double quotes.
Correct code:
#include <stdio.h> int main(void) { //closing double quote is missing printf("Hello world"); return 0; }
Output
Hello world
C Common Errors Programs »
Bill321 0 / 0 / 0 Регистрация: 03.07.2012 Сообщений: 6 |
||||||||
1 |
||||||||
06.07.2012, 20:32. Показов 3514. Ответов 22 Метки нет (Все метки)
тока начал читать книгу оп СИ, и ввел пример и результата никакого
а короткий код нормально работает
объясните плиз что я в первом не так сделал!
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
06.07.2012, 20:32 |
Ответы с готовыми решениями: Не работает Hello World Я являюсь начинающим программистом C++ На данный момент ознакамливаюсь с первыми… Hello World не работает! Не работает hello world не работает hello world 22 |
7 / 7 / 3 Регистрация: 02.07.2012 Сообщений: 120 |
|
06.07.2012, 20:35 |
2 |
Всего навсего кавычки неправильные! И с русским тоже небольшие проблемы тока начал читать книгу оп СИ, и ввел пример и результата никакого
0 |
ValeryS Модератор 8812 / 6594 / 896 Регистрация: 14.02.2011 Сообщений: 23,195 |
||||
06.07.2012, 20:40 |
3 |
|||
main() функция main дложна возвращать значение
Читай ошибки которые выдает компилятор, узнаешь что ему не нравится
0 |
Romadzao 7 / 7 / 3 Регистрация: 02.07.2012 Сообщений: 120 |
||||||||
06.07.2012, 20:46 |
4 |
|||||||
РешениеВот только возврат значения нужен далеко не всегда, лишний код — таки лишний.
Это поудобнее, без возврата, но если человек пишет, что так
работает, значит и void бесполезен
0 |
Bill321 0 / 0 / 0 Регистрация: 03.07.2012 Сообщений: 6 |
||||
06.07.2012, 20:53 [ТС] |
5 |
|||
спасибо за ответы, вот воспользовался данным кодом
так же ничего не происходит, компилятор ничего не пишет, вот снимок с экрана Миниатюры
0 |
yleart 60 / 45 / 12 Регистрация: 07.10.2011 Сообщений: 139 |
||||
06.07.2012, 20:53 |
6 |
|||
Может быть,
0 |
Модератор 8812 / 6594 / 896 Регистрация: 14.02.2011 Сообщений: 23,195 |
|
06.07.2012, 20:57 |
7 |
Вот только возврат значения нужен далеко не всегда, стандарт знаете-ли Добавлено через 1 минуту
так же ничего не происходит, компилятор ничего не пишет, вот снимок с экрана дак у тебя открывается консоль, выводится текст и консоль закрывается. Ты не успеваешь прочитать
0 |
BadBaddak 90 / 17 / 4 Регистрация: 09.06.2010 Сообщений: 100 |
||||
06.07.2012, 20:59 |
8 |
|||
Одинарные кавычки используются для ПЕРЕМЕННЫХ
0 |
Модератор 8812 / 6594 / 896 Регистрация: 14.02.2011 Сообщений: 23,195 |
|
06.07.2012, 21:02 |
9 |
Одинарные кавычки используются для ПЕРЕМЕННЫХ Ты сейчас насоветуешь
1 |
BadBaddak 90 / 17 / 4 Регистрация: 09.06.2010 Сообщений: 100 |
||||
06.07.2012, 21:11 |
10 |
|||
Тогда полная версия с использованием одинарных кавычек и без переменных:
0 |
0 / 0 / 0 Регистрация: 03.07.2012 Сообщений: 6 |
|
06.07.2012, 21:12 [ТС] |
11 |
стандарт знаете-ли Добавлено через 1 минуту дак у тебя открывается консоль, выводится текст и консоль закрывается. Ты не успеваешь прочитать когда нормально весь процесс пройдет то появляется второй снимок, а у а меня первый вылезает и не пойму что происходит Миниатюры
0 |
Модератор 8812 / 6594 / 896 Регистрация: 14.02.2011 Сообщений: 23,195 |
|
06.07.2012, 21:18 |
12 |
printf(«%c»,’n’); совсем новичка запутать хочешь Добавлено через 1 минуту
когда нормально весь процесс пройдет то появляется второй снимок, а у а меня первый вылезает и не пойму что происходит компилит…… дай ему подумать
0 |
Bill321 0 / 0 / 0 Регистрация: 03.07.2012 Сообщений: 6 |
||||
06.07.2012, 21:35 [ТС] |
13 |
|||
совсем новичка запутать хочешь Добавлено через 1 минуту компилит…… дай ему подумать мне его на ночь оставить думать? реально чего то долго думает( минут так 10),
сразу мгновенно сделал! а тут думает уже 12 минут Добавлено через 8 минут
0 |
90 / 17 / 4 Регистрация: 09.06.2010 Сообщений: 100 |
|
06.07.2012, 22:40 |
14 |
Какой конкретно код думает 12 минут?
0 |
Sanyur 11 / 11 / 0 Регистрация: 19.03.2010 Сообщений: 101 |
||||
06.07.2012, 23:33 |
15 |
|||
мне его на ночь оставить думать? реально чего то долго думает( минут так 10),
сразу мгновенно сделал! а тут думает уже 12 минут Не по теме: Дык свопинг начинается:D Не по теме: а какой программой СИ пользоваться лучше или без разницы какую нашел? Во первых надо определится зачем изучать СИ. Потом определиться какой стандарт изучать(если ответ на первый вопрос подразумевает задание второго). Затем нужно определить какую ос вы будете использовать, посмотреть компиляторы в соответствии с стандартом и ос и выбрать. Затем, если цели обширные, можно сравнивать компиляторы по разным признакам и использовать либо ни одного либо один либо больше чем один. Ну а для новичка нужно пользоваться тем, что удобнее. Посмотрите на dev-c++, gcc различных версий, vs 6, vs 2008, vs 2010. Рекомендую различные vs, хотя бы потому, что vs 6 и 2010(2008) — разные вещи(в плане компилятора си), а 2008 и 2010 потому, что IntelliSense разный. Не рекомендую vs 2011/2012 потому что они еще бетки.
1 |
99 / 99 / 22 Регистрация: 14.04.2010 Сообщений: 280 Записей в блоге: 9 |
|
06.07.2012, 23:53 |
16 |
Это поудобнее, без возврата, но если человек пишет, что так работает, значит и void бесполезен Шикарные у вас танцы с бубном вокруг да около тривиальных вещей Ну вводите человека в заблуждение! (а то еще приучите — трудно будет отучить). Все функции должны возвращать какое-то значение (void, кстати, тоже «возвращает»), тем более, если это main(). Главная точка входа, хроника: ОС передает инфу главной программе, главная программа все принимает и обещает вскоре ответить, ОС ждет, главная программа молчит, приходит мессага о принудительном закрытии окна, ОС убивает главную программу. Так что не стоит рисковать… тем более что времена, когда знания одного С было оочень много и достаточно, прошли.
1 |
Pavlus 0 / 0 / 0 Регистрация: 06.07.2012 Сообщений: 7 |
||||||||
07.07.2012, 01:14 |
17 |
|||||||
То есть первый вариант выходит нормально, а второй — с кодом ошибки. Но, это, вероятно, от реализации зависит. По крайней мере, в PellesC — так. Но дело-то не в этом,
Бе-бе-бе. Тип ‘n’ это char/int, а тип «n» это «const char*». Я тупица.
0 |
11 / 11 / 0 Регистрация: 19.03.2010 Сообщений: 101 |
|
07.07.2012, 01:37 |
18 |
тока начал читать книгу оп СИ
Код C
спасибо за ответы, вот воспользовался данным кодом Вы определитесь на чем вы пишите. на C или C++(QT). У меня ваш код за исключением того, что были поправлены кавычки в vs 2010 заработал.
1 |
Модератор 8812 / 6594 / 896 Регистрация: 14.02.2011 Сообщений: 23,195 |
|
07.07.2012, 07:41 |
19 |
Вы определитесь на чем вы пишите. на C или C++(QT). А, что писать С программы на плюсовом компиляторе запретили???
1 |
0 / 0 / 0 Регистрация: 03.07.2012 Сообщений: 6 |
|
07.07.2012, 10:05 [ТС] |
20 |
Не по теме: Дык свопинг начинается:D Не по теме: а какой программой СИ пользоваться лучше или без разницы какую нашел? Во первых надо определится зачем изучать СИ. Потом определиться какой стандарт изучать(если ответ на первый вопрос подразумевает задание второго). Затем нужно определить какую ос вы будете использовать, посмотреть компиляторы в соответствии с стандартом и ос и выбрать. Затем, если цели обширные, можно сравнивать компиляторы по разным признакам и использовать либо ни одного либо один либо больше чем один. Ну а для новичка нужно пользоваться тем, что удобнее. Посмотрите на dev-c++, gcc различных версий, vs 6, vs 2008, vs 2010. Рекомендую различные vs, хотя бы потому, что vs 6 и 2010(2008) — разные вещи(в плане компилятора си), а 2008 и 2010 потому, что IntelliSense разный. Не рекомендую vs 2011/2012 потому что они еще бетки. что то вы так много версий привели я запутался), я использую Dev-C++ 4.9.9.2, на windows 7, изучаю так для общего развития, понимаю что сразу будет много трудностей, но лучше чем тупо играть в онлайн игры
0 |
I have typed in the following code in Ubuntu using Emacs and compiled using the command line
#include <stdio.h>
int main(void)
{
printf("Hello World!nn");
return 0;
}
Having the void in the main function argument returns the following warning
helloworld.c: In function ‘main’: helloworld.c:6:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
When I removed the «void» within the parenthesis the program compiled without any errors. What is incorrect in have main(void)
in this program?
Compilation command is
gcc -Wall -ggdb helloworld.c -o hello
Edit:
This is the screenshot which I would like to share
asked Dec 23, 2015 at 19:48
PrasannaPrasanna
3032 silver badges16 bronze badges
6
The error doesn’t have anything to do with the void
in the signature of main()
int main(void)
is correct and is the way to define main()
when you don’t need to handle command line arguments.
The error means that you defined int main(void)
and you did not return a value from the function. Like this
#include <stdio.h>
int main(void)
{
printf("Hello World!n");
}
This warning was removed for main()
in newer versions of gcc because main()
implicitly returns 0
when the program exits unless you indicate otherwise with exit()
or an explict return from main()
.
Normal functions still trigger this warning and it helps in prevention of undefined behavior due to not returning from a function and trying to capture the return value.
answered Dec 23, 2015 at 19:51
Iharob Al AsimiIharob Al Asimi
52.6k6 gold badges59 silver badges97 bronze badges
2
The only way that warning could be for main()
function is if you don’t have a return statement and you are compiling in C89/C90 mode.
Since C99, a return statement at the end of main()
is not required and it’ll be assumed to return 0;
if control returns from main()
‘s end. So compile in c99 or C11 mode:
gcc -Wall -ggdb -std=c11 helloworld.c -o hello
which won’t trigger that warning. Or make sure you have return
statement if you are compiling in c89/C90. Until recently (at least upto gcc 4.9), the default mode in gcc is gnu90
. So you would get that warning withot a return statement if you don’t passstd=
.
I presume you don’t actually have return 0;
in your real code that produces this warning as it wouldn’t matter in what mode of C you are compiling it if you had an explicit return
statement.
answered Dec 23, 2015 at 20:06
P.PP.P
117k20 gold badges174 silver badges236 bronze badges
9