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

Прата задача 6.9 - C++

Восстановить пароль Регистрация
 
Zazy
 Аватар для Zazy
37 / 37 / 11
Регистрация: 14.04.2013
Сообщений: 167
17.11.2013, 03:28     Прата задача 6.9 #1
Всем доброго времени суток, подскажите как сделать что бы программа в строке 32 принимала имена с пробелами.
Если открываю файл без пробелов в именах все корректо выводит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using std::string;
struct Micenats
{
    string Name;
    double donations;
};
 
int main ()
{
    setlocale (LC_ALL,"Rus");
    using namespace std;
    string NameFile;
    cout << "Введите имя файла: ";
    getline(cin,NameFile);
    ifstream inFile;
    inFile.open(NameFile);
    if (!inFile.is_open())
    {
        cout << "Указаного файла не существует." <<endl;
        system("pause");
        exit(EXIT_FAILURE);
    }
    int N;
    inFile >> N;
    Micenats* pm = new Micenats[N];
    for (int i = 0; i < N; i++)
    {
        getline(inFile,pm[i].Name);
        inFile >> pm[i].donations;
        cout << pm[i].Name << endl;
        cout << pm[i].donations << endl;
    }
    delete []pm;
    system ("pause");
    inFile.close();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 03:28     Прата задача 6.9
Посмотрите здесь:

Ищу книгу С. Прата C++
Прата - составные типы C++
Прата -> Шлее = PROFIT? C++
Странная задача из Прата 2011 C++
Прата С. Задача считать строку до слова done C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 03:45     Прата задача 6.9 #2
Данные в файле покажите, как расположены.
Zazy
 Аватар для Zazy
37 / 37 / 11
Регистрация: 14.04.2013
Сообщений: 167
17.11.2013, 03:51  [ТС]     Прата задача 6.9 #3
4
Sam Stone
2000
Freida Flass
100500
Tammy Tubbs
5000
Rich Raptor
55000
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 03:53     Прата задача 6.9 #4
Так пробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using std::string;
struct Micenats
{
    string Name;
    double donations;
};
 
int main ()
{
    setlocale (LC_ALL,"Rus");
    using namespace std;
    string NameFile;
    cout << "Введите имя файла: ";
    getline(cin,NameFile);
    ifstream inFile;
    inFile.open(NameFile);
    if (!inFile.is_open())
    {
        cout << "Указаного файла не существует." <<endl;
        system("pause");
        exit(EXIT_FAILURE);
    }
    int N;
    (inFile >> N).get();
    Micenats* pm = new Micenats[N];
    for (int i = 0; i < N; i++)
    {
        getline(inFile,pm[i].Name);
        (inFile >> pm[i].donations).get();
        cout << pm[i].Name << endl;
        cout << pm[i].donations << endl;
    }
    delete []pm;
    system ("pause");
    inFile.close();
    return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
17.11.2013, 04:01     Прата задача 6.9 #5
Добавьте
C++
1
inFile.ignore();
перед 32 строкой.
Yandex
Объявления
17.11.2013, 04:01     Прата задача 6.9
Ответ Создать тему
Опции темы

Текущее время: 21:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru