Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
1

Непонятная ошибка. Потоки ввода/вывода

24.04.2014, 16:50. Показов 2196. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решал задачу и столкнулся с проблемой (первый день на c++ "пишу") не пойму что за ошибка
код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
 using namespace std;
   void main()
   {
   freopen("input.txt","r",stdin);
   freopen("output.txt","w",stdout);
   int i,c,f,a,b;
   c=0;
   f=0;
   for (i=1; i<=4; i++)
    {
    cin>>a>>b>>endl;
      if (a>b)c++;
      else f++;
    }
    if (c>f) cout<<"1";
    if (c<f) cout<<"2";
    if (c==f) cout<<"DRAW";
   }

вот что пишет на одном из сайтов, но не могу понять что это значит
task.cpp
task.cpp(15) : error C2679: binary '>>' : no operator found which takes a right-hand operand of
type 'const char [2]' (or there is no acceptable conversion)

Добавлено через 3 минуты
пробовал вместо "endl" писать "\n", но выдается все та же ошибка
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2014, 16:50
Ответы с готовыми решениями:

Что такое потоки ввода, потоки вывода?
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода,...

Потоки ввода/вывода
Здравствуйте! Расскажите мне пожалуйста подробнее о всех особенностях потоков ввода/вывода; в...

Потоки ввода-вывода в С++
Ребят, нужна помощь В программирование я новичок, но сдать нужно 1. Написать программу,...

Потоки ввода вывода
Почему с помощью классов ostream и istream нельзя создавать свои потоки ввода вывода? std::ostream...

23
15 / 15 / 6
Регистрация: 28.11.2013
Сообщений: 50
24.04.2014, 16:52 2
Лучший ответ Сообщение было отмечено ecofreeon как решение

Решение

Цитата Сообщение от ecofreeon Посмотреть сообщение
cin>>a>>b>>endl;
C++
1
2
cin >> a >> b;
cout << endl;
1
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 16:53  [ТС] 3
Цитата Сообщение от _Ellen_ Посмотреть сообщение
cout << endl;
помогло, спасибо.
А в одном строке это почему нельзя сделать?
0
Заблокирован
24.04.2014, 16:57 4
ecofreeon, потому-что одно это cin, второе - cout
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
24.04.2014, 16:57 5
Цитата Сообщение от ecofreeon Посмотреть сообщение
А в одном строке это почему нельзя сделать?
потому что std::cout - это объект выходного потока, а std::cin - входного
0
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 16:58  [ТС] 6
а как это сделать не трогая cout? просто тогда в файле output результат будет напечатан в 5-й строке, а надо, чтобы в 1-й.
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
24.04.2014, 16:59 7
ecofreeon, если я вас правильно понял, то вместо
Цитата Сообщение от _Ellen_ Посмотреть сообщение
cout << endl;
это
C++
1
std::cout<<" ";
0
Заблокирован
24.04.2014, 17:00 8
ecofreeon,

C++
1
cout << endl;
не надо вообще писать

сотрите его и все
0
15 / 15 / 6
Регистрация: 28.11.2013
Сообщений: 50
24.04.2014, 17:03 9
Цитата Сообщение от ecofreeon Посмотреть сообщение
А в одном строке это почему нельзя сделать?
cin - объект входного потока, >> - операция взятия из потока. В данном случае в cin попадает информация с клавиатуры.
Операция << используется, чтобы поместить информацию в поток выхода, в данном случае для вывода на экран.

Переменные Вы считываете с клавиатуры, а переход на новую строку выводите на экран.
0
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 17:04  [ТС] 10
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
не надо вообще писать
но мне надо, чтобы после считывания двух чисел программа считывала еще два числа со следующей строки
хмм... действительно в первой строке пишет...
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 17:04 11
Цитата Сообщение от ecofreeon Посмотреть сообщение
первый день на c++ "пишу"
ecofreeon, желательно не смешивать Си и С++.
0
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 17:14  [ТС] 12
Цитата Сообщение от alsav22 Посмотреть сообщение
желательно не смешивать Си и С++
а я, вроде. и не смешиваю их...

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
*using namespace std;
* *void main()
* *{
* *freopen("input.txt","r",stdin);
* *freopen("output.txt","w",stdout);
* *int i,c,f,a,b;
* *c=0;
* *f=0;
* *for (i=1; i<=4; i++)
* * {
* * cin>>a>>b;
* * * if (a>b)c++;
* * * else f++;
* * }
* * if (c>f) cout<<"1";
* * if (c<f) cout<<"2";
* * if (c==f) cout<<"DRAW";
* *}
такая программа будет переходит на следующую строку после считывания первой?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 17:20 13
Цитата Сообщение от ecofreeon Посмотреть сообщение
а я, вроде. и не смешиваю их...
Считаете, что это С++?
C++
1
2
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
0
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 17:22  [ТС] 14
Цитата Сообщение от alsav22 Посмотреть сообщение
Считаете, что это С++?
я не знаю, по запросу на ввод и вывод в файлы c++ я нашел это, работает.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 17:22 15
Тем более, что это здесь совершенно ни к чему.
0
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 17:24  [ТС] 16
Цитата Сообщение от alsav22 Посмотреть сообщение
Тем более, что это здесь совершенно ни к чему
к чему. мне нужно брать значения из файла input.txt и выводить в output.txt
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 17:34 17
На С++ это так может выглядеть:
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream fin("input.txt");
    if (!fin)
        cout << "Error!" << endl;
    else
    {
        ofstream fout("output.txt");
        int c, f, a, b;
        c = 0;
        f = 0;
        while (fin >> a >> b)
        {
            if (a > b)
                c++;
            else 
                f++;
        }
        if (c > f) 
            fout << "1" << endl;
        if (c < f) 
            fout << "2" << endl;
        if (c == f) 
            fout << "DRAW" << endl;
        
        fout.close();
        fin.close();
    }
    
    cin.get();
    return 0;
}
2
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
24.04.2014, 17:40  [ТС] 18
Спасибо ."fin" и "fout" это зарезервированные названия или могу использовать свои?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.04.2014, 17:58 19
Можно свои (cin и cout зарезервированы).
0
0 / 0 / 2
Регистрация: 13.04.2014
Сообщений: 148
25.04.2014, 09:05  [ТС] 20
объясните пню(мне) как построчно считывать из файла цифры, не символы. вот в паскале(знаю лучше его) допустим есть readln, которая считывает и переводит на следующую строку, а в c++ как это осуществляется?

Добавлено через 12 минут
fin >> a >> b
вот так вот считываются строки, но как-то не правильно считываются: выводить должно быть 57 57 а выводит 32 28
0
25.04.2014, 09:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2014, 09:05
Помогаю со студенческими работами здесь

Потоки ввода-вывода
1) Типы данных, для которых перегружены операторы форматного ввода-вывода.

Используя потоки ввода/вывода в С++
Здравствуйте помогите организовать запись информации из массива объектов в класс, чтение данной...

Множественное наследование. Потоки ввода-вывода
Помогите на с++

Текстовые файлы и потоки ввода/вывода
Доброго времени суток. Уважаемый гуру, не могли бы вы мне помочь с решением данной программы....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru