|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Mudry 2:5020/400 16 Jan 2003 12:32:23 To : Ilja Elizarov Subject : printf обрезает строку до пробела -------------------------------------------------------------------------------- Hello, Ilja! You wrote to All on Wed, 15 Jan 2003 21:56:24 +0300: IE> Вот решил начирикать небольшой исходничек, т.к. решил заняться IE> кодингом на c++, а cout и cin - нет в линухе, поэтому пришлось Уверен? А проверял? IE> самому осваивать scanf и printf. IE> И так исходник: IE> #include <stdio.h> IE> char *value; /* Hутром чувствую что офтопик */ Где тут буфер для ввода? Здесь только указатель. IE> main() IE> { IE> printf("Введите текст: "); IE> scanf("%s",&value); При такой передаче параметра scanf безопасно сможет прочитать не более 3 символов. IE> printf("Вы ввели: "); IE> printf("%s\n",&value); IE> } IE> Если ввесть скажем: Helloworld, то на экран уйдёт Helloworld, а если IE> "hello world", то на выход уйдёт лишь "hello", почему такое Считай, что тебе просто фатально повезло. Ты вполне мог получить и "Segmentation fault" IE> происходит? Во первых, создай буфер для ввода. Hапример так: char value[200]; или так: char *value; main() { value=malloc(200); ... Во вторых режет не printf, а scanf. Формат "%s" читает строку до разделителя, в качестве которого может выступать и пробел. Попробуй использовать "%[^\n]" В третьих scanf нужно отдать value, а вовсе не &value - это разные вещи. В printf - то же самое. А вообще, scanf - потенциальный источник глюков, связаных с переполнением буфера. Используй вместо него fgets или даже просто read Короче, должно получиться нечто вроде: #include <stdio.h> char value[200]; main() { printf("Введите текст: "); fgets(value,200,stdin); printf("Вы ввели: "); printf("%s\n",value); } А вообще тебе прямая дорога в su.c_cpp With best regards, Serg, aka upx@nc.ru, upx@ukr.net --- ifmail v.2.15dev5 * Origin: Donbass Internet Center DIPT (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/12005ac7c0450.html, оценка из 5, голосов 10
|