Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как считать строку с пробелами в С++? Подскажите плиз, scanf не считывает строку с пробелами.

Denis Denis Ученик (80), закрыт 10 лет назад
Дополнен 10 лет назад
getline и т. д. не предлагать. Нужен массив чаров.
#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

int main()
{
char str [10];
char maxsl [201];
printf ("Введите строку не более 200 символов\n");
int length;
for (length=0; length<11; length++) scanf ("%с", &str[length]);
for (length=0; length<11; length++)
printf ("%c", str[length]);

getchar();
}
Не пашет :
Лучший ответ
ra Высший разум (113244) 10 лет назад
#include <cstdio>

int main() {
    char s[201];
    printf("string? ");
    fgets(s, 201, stdin);
    printf("%s", s);
}

Или:

#include <iostream>

int main() {
    char s[201];
    std::cout << "string? ";
    std::cin.getline(s, 201);
    std::cout << s << std::endl;
}

Ну и немного модифицированный твой вариант:

#include <cstdio>

int main() {
    char s[201], *p = s;
    int l = 0;
    printf("string? ");
    for (fread((void *)p, 1, 1, stdin); l < 201 && *p != '\n'; ++l, fread((void *)++p, 1, 1, stdin)) ;
    s[l] = '\0';
    printf("'%s'\n", s);
}

Остальные ответы
Похожие вопросы