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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zazy
45 / 45 / 15
Регистрация: 14.04.2013
Сообщений: 186
#1

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

17.11.2013, 03:28. Просмотров 352. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток, подскажите как сделать что бы программа в строке 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 03:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прата задача 6.9 (C++):

C++ - Прата задача 6.9 - C++
Подскажите пожалуйста в чем ошибка?не обрабатывается условие неправильного ввода имени файла. #include &lt;iostream&gt; #include &lt;fstream&gt; ...

С.Прата, задача 3.5 - C++
Гляньте, пожалуйста. Задача на преобразование целочисленных типов в с плавающей точкой. Вроде бы я решил: // запрос населения Земли и...

Прата, задача 2, глава 6 - C++
Доброго времени суток. Учу программирования по книжке Прата. И вот такая задача: &quot;Напишите программу, которая считывает до десяти...

9 Задача 4 главы Стивен Прата - C++
Выполните упражнение 6, но вместо объявления массива из трех структур CandyBar используйте операцию new для динамического размещения...

Странная задача из Прата 2011 - C++
Задача во вложении. Пользоваться циклами и ветвлениями нельзя, т.к. их еще не дают на этапе этого задания. Как понизить грейд? Что-то с...

Прата С. Задача считать строку до слова done - C++
Буду очень признателен за направление в нужно русло (готового ответа не надо, я хочу понять сам, только направление ) *** Условие: ...

4
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 03:45 #2
Данные в файле покажите, как расположены.
0
Zazy
45 / 45 / 15
Регистрация: 14.04.2013
Сообщений: 186
17.11.2013, 03:51  [ТС] #3
4
Sam Stone
2000
Freida Flass
100500
Tammy Tubbs
5000
Rich Raptor
55000
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 03:53 #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;
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7526 / 4664 / 704
Регистрация: 29.11.2010
Сообщений: 12,740
17.11.2013, 04:01 #5
Добавьте
C++
1
inFile.ignore();
перед 32 строкой.
0
17.11.2013, 04:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2013, 04:01
Привет! Вот еще темы с ответами:

Двумерный массив и циклы. С. Прата, задача 5.6 - C++
С. Прата, Язык программирования С++, глава 5, задача 6. Напишите программу, которая позволит ввести ежемесячные объёмы продаж в единицах...

Прата С. 6.6 - C++
написал код, но после ввода первой структуры в цикле, выдает ошибку( //6.6.cpp #include &lt;iostream&gt; using namespace std; struct card...

Прата - составные типы - C++
Добрый день. Недавно начал заниматься С++ по книге Прата. Прошел четвертую главу и встретил такую задачу: Напишите программу С++,...

Прата, аргументы по умолчанию - C++
Тема - аргументы по умолчанию. Приведён код #include &lt;iostream&gt; const int ArSize = 80; char * left(const char * str, int n = 1); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru