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

Метод cin.getline(str,n,'\n'), если в строке более n-1 символа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, в каком году было больше всего дел, связанных с мошенничеством http://www.cyberforum.ru/cpp-beginners/thread624693.html
Предусмотреть вывод значений для полей элементов массива записей по следующим критериям: дата, предмет судебного разбирательства, название фирмы-истца, название фирмы-обвиняемого. Определить, в каком году было больше всего дел, связанных с мошенничеством
C++ Программа судебных разбирательств Создать маленькую базу данных судебных разбирательств с такими полями: Судебное дело<<Причина разбирательства, Дата(день, месяц, год), Истец (Номер телефона, компания), Ответчик(Номер телефона, компания). Вывести на экран количество разбирательств по причине "Мошенничество" во введенном пользователем году. В программе должны использоваться процедуры и функции и файлы. http://www.cyberforum.ru/cpp-beginners/thread624680.html
std::bind C++
Можно ли, и если да, то как с помощью этой функции сделать следующее: auto var=std::bind(&f, "arg"); //... //... //тут надо из var вызвать f("arg")
Для чего какая библиотека нужна C++
помогите разобраться для чего какая библиотека нужна
C++ Code::Blocks Не запускается .exe откомпилированной программы http://www.cyberforum.ru/cpp-beginners/thread624656.html
->Проблема решена.:)
C++ Cd key convert Здраствуйте, есть некая программа, установщик который при запуске запрашивает ключ установки вот такого вида: P4WN-02KRK-EL372-DA8KA-HX19C Y48R-6ZHGJ-5GK03-R3TPG-TH5W1 A4L1-XSH86-VLMTC-2DFF3-AB9JC 9087-VTKGA-70XRR-FHTGZ-FN376 W2W2-BDKGJ-CMY9S-LLY70-DPY5N K5LD-SWKG6-M5GYX-BH5KE-30ZG3 S3RN-Z8G8H-13WBM-CJ2XT-D1TZM и записывает их в реестре: подробнее

Показать сообщение отдельно
Alberto_Timakov
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 183
16.07.2012, 22:16     Метод cin.getline(str,n,'\n'), если в строке более n-1 символа
Помогите пожалуйста!
Насколько знаю метод cin.getline(str,n,'\n'), должен считать n-1 символ из строки и занести в конец строки '\0', либо считать произвольное количество символом до '\n' включительно. Вот... пишу такую штуку:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
enum A {STR = 2, LEN = 100};
 
int main(void)
{
    
    char str[STR][LEN];
    int i = 0;
 
    for(int i = 0; i < STR; i++)
        cin.getline(str[i],10,'\n');
 
    for(int i = 0; i < STR; i++)
        cout << str[i] << endl;
 
    system("pause");
 
    return 0;
}
в консоли ввожу 123456789123456789. Он считывает только 123456789, остальные цифры не хочет, почему? Ведь после первого считывания, в потоке остается 123456789\n, а он при втором считывании считывает кажется '\n' ...

Добавлено через 13 минут
Да и еще, если поставить после cin.getline(str[i],10,'\n'); строчку cout << cin.peek(); т.е.
C++
1
2
3
4
5
for(int i = 0; i < STR; i++)
{
     cin.getline(str[i],10,'\n');
     cout << cin.peek();
}
то он выведет -1, т.е. EOF, т.е. конец файла...но ведь это не конец...шельма какая-то...

Добавлено через 3 минуты
пробовал писать
C++
1
2
3
4
5
for(int i = 0; i < STR; i++)
{
     cin.getline(str[i],10,'\n');
     cin.ignore();
}
но тоже каналья...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru