Я тут написал код, смысл которого должен быть ясен. Однако он не работает, как это исправить?
#include<stdio.h>
#include<string.h>
int main()
{
int name;
printf("What is your name?\n");
scanf("%s", &name);
printf("Please to meet, %s\n", name);
getch();
return 0;
}
(Я недавно начал осваиваться C программирование, просьба быть по проще)
Другие языки программирования и технологии
Как использоваться строки (strings), как переменные?
Си:
#include <stdio.h>
#include <conio.h>
int main() {
char name[20];
printf("What is your name?\n");
scanf("%""19s", &name);
printf("Please to meet, %s\n", name);
getch();
return 0;
}
С++:
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
int main() {
string name;
cout << "What is your name?\n";
cin >> name;
cout << "Please to meet, " << name << "\n";
getch();
return 0;
}
#include <stdio.h>
#include <conio.h>
int main() {
char name[20];
printf("What is your name?\n");
scanf("%""19s", &name);
printf("Please to meet, %s\n", name);
getch();
return 0;
}
С++:
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
int main() {
string name;
cout << "What is your name?\n";
cin >> name;
cout << "Please to meet, " << name << "\n";
getch();
return 0;
}
int name; // name - число?
scanf("%s", &name); // вводишь как число или как строку?
Если хочешь язык программирования с++, то используй cin и cout http://applib.org/content/vvedenie-v-klass-string
Если же язык С, то строка там:
char name[80]; // статический массив, во тогда на него и можно scanf использовать как ты хотел передавая адрес на эту переменную
scanf("%s", &name); // вводишь как число или как строку?
Если хочешь язык программирования с++, то используй cin и cout http://applib.org/content/vvedenie-v-klass-string
Если же язык С, то строка там:
char name[80]; // статический массив, во тогда на него и можно scanf использовать как ты хотел передавая адрес на эту переменную
Переменную name надо объявить как строку, то есть (в C) как массив символов:
char name[100];
При чтении строки, вводимой пользователем, всегда существует опасность того, что будет считано больше символов, чем мы выделили памяти. Поэтому рекомендую всегда ставить ограничение на количество считываемых символов:
scanf("% 99s", name);
Почему 99, а не 100? Потому что требуется один символ для завершающего строку '\0'.
char name[100];
При чтении строки, вводимой пользователем, всегда существует опасность того, что будет считано больше символов, чем мы выделили памяти. Поэтому рекомендую всегда ставить ограничение на количество считываемых символов:
scanf("% 99s", name);
Почему 99, а не 100? Потому что требуется один символ для завершающего строку '\0'.
ты, наверное, осваиваешь его методом проб и ошибок. и в книжку не заглянешь, пока ось не убьёшь? к сожалению, это маловероятно... .
короче,
у тебя name - типа int - это нихуй не строки, а целые числа
должно быть:
string name;
да и, на сколько я помню, scanf под строками понимает массив символов, а точнее, указатель на char.
короче,
у тебя name - типа int - это нихуй не строки, а целые числа
должно быть:
string name;
да и, на сколько я помню, scanf под строками понимает массив символов, а точнее, указатель на char.
Похожие вопросы
- Как преобразовать строки файла в переменные (C#)?
- Как удалить символ из переменной типа строки в PHP?
- Как ввести новую строку в консоль, чтобы переменная счета увеличилась? С++
- С# - нужно сделать так, чтобы консоль читала слова, как переменные, а не просто слова...
- Как сложить переменную ? Delphi 7 Что никто не знает ответа что ли ?Н
- Снова Паскаль) ) Переменные и занимаемая ими память
- Указатели это переменные в которых содержатся адреса других переменных?
- В Microsoft Word для мягкого перевода строки используется сочетание клавиш?
- С++, объект класса, экземпляр класса, какой тип переменной хранит экземпляр класса? (экземпляр это что? Word, lpstr..?)
- Как вернуть значение переменной присвоенное ранее? Pascal