Hello world c ошибка

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

Почему-то компилируется другое сообщение, в чем дело?5e9e020e663aa862603385.jpeg
Собственно, вряд ли дело в коде, скорее я криворукий)

#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

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

тока начал читать книгу оп СИ, и ввел пример и результата никакого

C
1
2
3
4
5
6
7
#include <stdio.h>
main()
{
      printf("Hello,");
      printf("world");
      printf('n');
}

а короткий код нормально работает

C
1
2
3
4
5
#include <stdio.h>
main()
{
      printf("Hello, worldn");
}

объясните плиз что я в первом не так сделал!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

06.07.2012, 20:32

Ответы с готовыми решениями:

Не работает Hello World
Добрый день!

Я являюсь начинающим программистом C++

На данный момент ознакамливаюсь с первыми…

Hello World не работает!
Вот что мне сгенерил Wascana Eclipse (Helios release):
#include &lt;iostream&gt;
using namespace std;

Не работает 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

Цитата
Сообщение от Bill321
Посмотреть сообщение

main()

функция main дложна возвращать значение
в зависимости от компилятора может вернуть предупреждение (warning)или ошибку (error)
в связи с этим твой код должен выглядеть так

C++
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
 {
 printf("Hello,");
 printf("world");
 printf("n");
return 0;
 }

Читай ошибки которые выдает компилятор, узнаешь что ему не нравится



0



Romadzao

7 / 7 / 3

Регистрация: 02.07.2012

Сообщений: 120

06.07.2012, 20:46

4

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот только возврат значения нужен далеко не всегда, лишний код — таки лишний.

C++
1
2
3
4
5
#include <stdio.h>
void main()
{
      printf("Hello, worldn");
}

Это поудобнее, без возврата, но если человек пишет, что так

C++
1
2
3
4
5
#include <stdio.h>
main()
{
      printf("Hello, worldn");
}

работает, значит и void бесполезен



0



Bill321

0 / 0 / 0

Регистрация: 03.07.2012

Сообщений: 6

06.07.2012, 20:53

 [ТС]

5

спасибо за ответы, вот воспользовался данным кодом

C++ (Qt)
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
 {
 printf("Hello,");
 printf("world");
 printf("n");
return 0;
 }

так же ничего не происходит, компилятор ничего не пишет, вот снимок с экрана

Миниатюры

Не работает Hello, World
 



0



yleart

60 / 45 / 12

Регистрация: 07.10.2011

Сообщений: 139

06.07.2012, 20:53

6

Может быть,

C
1
2
3
4
5
6
7
8
#include <stdio.h>
 int main()
 {
 printf("Hello,");
 printf("world");
 printf("n");//Кавычки
 return 0;
 }



0



Модератор

Эксперт по электронике

8812 / 6594 / 896

Регистрация: 14.02.2011

Сообщений: 23,195

06.07.2012, 20:57

7

Цитата
Сообщение от Romadzao
Посмотреть сообщение

Вот только возврат значения нужен далеко не всегда,

стандарт знаете-ли
единственно я знаю где возврат не нужен это микроконтроллеры, там идет зацикливание и до returna дело не доходит

Добавлено через 1 минуту

Цитата
Сообщение от Bill321
Посмотреть сообщение

так же ничего не происходит, компилятор ничего не пишет, вот снимок с экрана

дак у тебя открывается консоль, выводится текст и консоль закрывается. Ты не успеваешь прочитать



0



BadBaddak

90 / 17 / 4

Регистрация: 09.06.2010

Сообщений: 100

06.07.2012, 20:59

8

Одинарные кавычки используются для ПЕРЕМЕННЫХ
char a=’n’
При использовании ФУНКЦИИ printf(«n»); на печать выводится то, что между двойными кавычками.
Такой код тоже не будет работать. Виноваты не те кавычки, поменяй на двойные и всё будет:

C
1
2
3
4
5
6
7
#include <stdio.h>
main()
{
      printf("Hello,");
      printf("worl");
      printf('d');
}



0



Модератор

Эксперт по электронике

8812 / 6594 / 896

Регистрация: 14.02.2011

Сообщений: 23,195

06.07.2012, 21:02

9

Цитата
Сообщение от BadBaddak
Посмотреть сообщение

Одинарные кавычки используются для ПЕРЕМЕННЫХ

Ты сейчас насоветуешь
В одинарных символ, в двойных строка
разницу объяснить??



1



BadBaddak

90 / 17 / 4

Регистрация: 09.06.2010

Сообщений: 100

06.07.2012, 21:11

10

Тогда полная версия с использованием одинарных кавычек и без переменных:

C
1
2
3
4
5
6
7
#include <stdio.h>
void main()
{
      printf("Hello, ");
      printf("world");
      printf("%c",'n');
}



0



0 / 0 / 0

Регистрация: 03.07.2012

Сообщений: 6

06.07.2012, 21:12

 [ТС]

11

Цитата
Сообщение от ValeryS
Посмотреть сообщение

стандарт знаете-ли
единственно я знаю где возврат не нужен это микроконтроллеры, там идет зацикливание и до returna дело не доходит

Добавлено через 1 минуту

дак у тебя открывается консоль, выводится текст и консоль закрывается. Ты не успеваешь прочитать

когда нормально весь процесс пройдет то появляется второй снимок, а у а меня первый вылезает и не пойму что происходит

Миниатюры

Не работает Hello, World
 

Не работает Hello, World
 



0



Модератор

Эксперт по электронике

8812 / 6594 / 896

Регистрация: 14.02.2011

Сообщений: 23,195

06.07.2012, 21:18

12

Цитата
Сообщение от BadBaddak
Посмотреть сообщение

printf(«%c»,’n’);

совсем новичка запутать хочешь

Добавлено через 1 минуту

Цитата
Сообщение от Bill321
Посмотреть сообщение

когда нормально весь процесс пройдет то появляется второй снимок, а у а меня первый вылезает и не пойму что происходит

компилит…… дай ему подумать



0



Bill321

0 / 0 / 0

Регистрация: 03.07.2012

Сообщений: 6

06.07.2012, 21:35

 [ТС]

13

Цитата
Сообщение от ValeryS
Посмотреть сообщение

совсем новичка запутать хочешь

Добавлено через 1 минуту

компилит…… дай ему подумать

мне его на ночь оставить думать? реально чего то долго думает( минут так 10),

C++
1
2
3
4
5
6
#include <stdio.h>
main()
{
      printf("Hello, worldn");
      
      }

сразу мгновенно сделал! а тут думает уже 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

Цитата
Сообщение от Bill321
Посмотреть сообщение

мне его на ночь оставить думать? реально чего то долго думает( минут так 10),

C++
1
2
3
4
5
6
#include <stdio.h>
main()
{
      printf("Hello, worldn");
      
      }

сразу мгновенно сделал! а тут думает уже 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

Цитата
Сообщение от Romadzao
Посмотреть сообщение

Это поудобнее, без возврата, но если человек пишет, что так работает, значит и void бесполезен

Шикарные у вас танцы с бубном вокруг да около тривиальных вещей

Ну вводите человека в заблуждение! (а то еще приучите — трудно будет отучить). Все функции должны возвращать какое-то значение (void, кстати, тоже «возвращает»), тем более, если это main(). Главная точка входа, хроника: ОС передает инфу главной программе, главная программа все принимает и обещает вскоре ответить, ОС ждет, главная программа молчит, приходит мессага о принудительном закрытии окна, ОС убивает главную программу. Так что не стоит рисковать… тем более что времена, когда знания одного С было оочень много и достаточно, прошли.



1



Pavlus

0 / 0 / 0

Регистрация: 06.07.2012

Сообщений: 7

07.07.2012, 01:14

17

C
1
2
3
4
5
6
// standart empty program
#include <stdlib.h>
 
int main(){
  return EXIT_SUCCESS;
}
C
1
2
3
// short variant
void main(){}
// return value is 1==EXIT_FAILURE.

То есть первый вариант выходит нормально, а второй — с кодом ошибки. Но, это, вероятно, от реализации зависит. По крайней мере, в PellesC — так.

Но дело-то не в этом,

как и не в кавычках (для несведущих, — n работает как символ, ему пойдут и одинарные кавычки. А после двойных, вроде как, не помню точно, ещё идёт завершающий нуль, но здесь он ни к чему и можно оставить одинарные).

Бе-бе-бе. Тип ‘n’ это char/int, а тип «n» это «const char*». Я тупица.



0



11 / 11 / 0

Регистрация: 19.03.2010

Сообщений: 101

07.07.2012, 01:37

18

Цитата
Сообщение от Bill321
Посмотреть сообщение

тока начал читать книгу оп СИ

Цитата
Сообщение от Bill321
Посмотреть сообщение

Код C
#include <stdio.h>
main()
{
printf(«Hello,»);
printf(«world»);
printf(‘n’);
}

Цитата
Сообщение от Bill321
Посмотреть сообщение

спасибо за ответы, вот воспользовался данным кодом
Код C++ (QT)
#include <stdio.h>
int main()
{
printf(«Hello,»);
printf(«world»);
printf(«n»);
return 0;
}

Вы определитесь на чем вы пишите. на C или C++(QT).
Про кавычки уже написали. Попробуйте сменить компилятор или переустановить тот, что используете.

У меня ваш код за исключением того, что были поправлены кавычки в vs 2010 заработал.



1



Модератор

Эксперт по электронике

8812 / 6594 / 896

Регистрация: 14.02.2011

Сообщений: 23,195

07.07.2012, 07:41

19

Цитата
Сообщение от Sanyur
Посмотреть сообщение

Вы определитесь на чем вы пишите. на C или C++(QT).

А, что писать С программы на плюсовом компиляторе запретили???
вот если бы он стиль путал, то тогда претензия обоснована.



1



0 / 0 / 0

Регистрация: 03.07.2012

Сообщений: 6

07.07.2012, 10:05

 [ТС]

20

Цитата
Сообщение от Sanyur
Посмотреть сообщение

Не по теме:

Дык свопинг начинается: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
enter image description here

asked Dec 23, 2015 at 19:48

Prasanna's user avatar

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 Asimi's user avatar

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.P's user avatar

P.PP.P

117k20 gold badges174 silver badges236 bronze badges

9

Возможно, вам также будет интересно:

  • Hellgate london ошибка сценария
  • Hellgate london ошибка при запуске
  • Helior sigma s1ksl ошибка 4
  • Heli электропогрузчик ошибка 042
  • Heli cpd 15 ошибки

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии