Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Создание файла с текстом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Malloc. Конвертировать void в int. http://www.cyberforum.ru/cpp-beginners/thread616708.html
вот код #include <vcl.h> #pragma hdrstop #include <iostream.h> //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv)...
C++ Задача: Фигуры здравствуйте, уважаемые программисты. прошу помощи в разработке алгоритма и программировании решения такой вот задачи: Имеется похожий на шахматную доску прямоугольный клетчатый лист бумаги... http://www.cyberforum.ru/cpp-beginners/thread616683.html
C++ Файл содержит информацию о фамилиях и номерах телефонов 10 человек
Пожалуйста помогите доработать программу. Вот задание: Создать текстовый файл с записями фиксированной длины. Файл содержит информацию о фамилиях и номерах телефонов 10 человек. Написать...
Простенькое наследование C++
Добрый день,помогите пожалуйста,вроде и просто наследование а почему то пишет что класс не доступен,пишу в c builder 6 в консольном приложении может это из-за него) вот код #include <vcl.h>...
C++ Условия If http://www.cyberforum.ru/cpp-beginners/thread616642.html
Привет, сразу прошу прощения за глупый вопрос но я только начинающий программист и поэтому я не знаю как реализовать мою идею, но я уверен что вы знаете. В чём заключается моя идея: Хочу создать...
C++ Почему не виден указатель? Необходимо создать програму которая читает из файла кол-во записей в массиве структур,создает динамический массив,а потом получает из файла имя мецената и кол-во денег. выводит Крутых меценатов -... подробнее

Показать сообщение отдельно
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.06.2012, 05:39
Цитата Сообщение от programm1r Посмотреть сообщение
функция get() читает из потока один символ, так что если вы ввели несколько символов, то она оставит за собой непустой поток. И следующий вызов cin.get() будет обречен на "фиаско"...
Не совсем так. Есть два варианта метода get(): get(char&) и get(char&, int). В данном коде используется get(char&, int). Он читает из потока последовательность символов, а не один символ. В данном коде ошибка происходит из-за того, что get(char&, int), когда прочитывает символ новой строки, то оставляет его в потоке ( в отличие от getline(char&, int)), делая первым символом для следующей операции чтения. При следующем чтении, встретив первым символ новой строки, метод get(char&, int) устанавливает флаг failbit (флаг ошибки, реакция на пустую строку), делая дальнейший ввод невозможным (то же самое произойдёт, если просто ввести пустую строку). Чтобы этого избежать, нужно, после вызова get(char&, int), извлечь символ новой строки, оставленный в потоке. Например, с помощью метода get():
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char a[100];
           char g[100];
    cout<<"Vvedite nazvanie:";
    cin.get(a,100);
    cin.get(); //извлекаем один символ(символ новой строки) из потока.
    ofstream l;
    l.open(a);
    cout<<"Vvedite tekst:";
    cin.get(g,100);
    
    l<<g;
    l.close();
    
    system("pause");
    system("cls");
    return 0;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru