c ввод строки с пробелами

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

Здесь нет тестовых случаев.
Скажем, для m = 3, у меня есть этот вход

Для наглядности — используется для представления пробелов. На входе вместо пробелов — ,
Это вывод, который я получаю

Еще одна вещь, которую я попробовал это

где m = 3, n = 2 для примера выше. Но печать этого arr дает мне следующий вывод:

Я не уверен, почему я получаю этот вывод. Почему я получаю NUL вместо пробелов. Также в первом коде я получаю вывод NUL до # ,это почему?

Решение

Нет необходимости писать такой сложный код для получения пробелов из cin , Вы можете просто воспользоваться std::noskipws флаг.

Решение 1:

Решение 2:

или даже проще, без каких-либо string :

Решение 3:

Другие решения

Вы печатаете str[0] — это не строка, это один символ. Когда ваша строка пуста, единственное, что в ней содержится, это null-terminator ( ‘’ ). И когда вы получаете доступ к первому элементу вашей строки с [] , вы получаете доступ к этому нулевому терминатору. И поскольку вы печатаете его как символ, вы видите NUL в качестве вывода.

0 [2015-08-24 15:36:00]

Я пытаюсь ввести строки, которые могут содержать пробелы. Вся строка может быть сделана из пробелов. Вот что я doing-

Здесь t нет тестовых случаев. Скажем, для m = 3, у меня есть input-

Для видимости — используется для представления белых пробелов. В фактическом вводе есть белые пробелы вместо — . Это вывод я get-

Еще одна вещь, которую я пробовал, — this-

где m = 3, n = 2 для приведенного выше примера. Но печать этого arr дает мне следующее output-

Я не уверен, почему я получаю этот вывод. Почему я получаю NUL вместо белых пробелов. Также в первом коде вывод, который я получаю, равен NUL до # , почему?

Имя Фамилия Гуру (2596), закрыт 6 лет назад
#include
using namespace std;

int main()
<
string name;
setlocale( LC_ALL,»Russian» );
cout

Сделал так
#include «stdafx.h»
#include
#include
using namespace std;

int main()
<
string name;
setlocale( LC_ALL,»Russian» );
cout Лучший ответ

Оцените статью