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

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

Войти
Регистрация
Восстановить пароль
 
СуперОля
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 6
#1

ifstream считывает 0 - C++

18.11.2013, 20:48. Просмотров 628. Ответов 10
Метки нет (Все метки)

Здравствуйте. Есть 2 текстовых файла с названиями n.in n.out .Содержимое входящего файла
1
5
2
4
3
9
4
7
5
8
6
4
7
8
8
5
9
10
10
9
C++
1
2
3
4
5
6
7
8
9
10
11
ifstream f1("n.in");
    ofstream f2("n.out");
    float x,x1;
 
    for(int i=1;i<11;i++)
    { 
        f1>>kom[0][i];
        cout<<kom[0][i];
        f1>>kom[1][i];
        cout<<kom[0][i];
    }
В итоге мне выдает на консоль все нули. В чем может быть проблема ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 20:48     ifstream считывает 0
Посмотрите здесь:

Ifstream считывает только первую строку - C++
я написал короткую программу, с водом имена в файл и выводом. проблема заключается в том что ifstream выводит только первую строку, а...

Что считывает ifstream: слово до пробела или полностью строку? - C++
если я запишу вот так, то что будет считываться в данном случае string temp; ifstream fread(&quot;C:\\project\\test.txt&quot;); ...

Различия ifstream::get() и ifstream::get(ch) - C++
Доброго времени суток. Была тут тема, в которой я не разобрался до конца. Код ниже проверяет баланс скобок в текстовом файле #include...

ifstream - C++
Привет всем такая проблема ввода Student* s;// студенты s = new Student; ifstream fin(&quot;Student.txt&quot;); for(int i(0); i &lt; l;...

fstream ifstream - C++
подключил библиотеку fstream создал объект ifstream file открыл файл, поработал(считывал до конца &lt; eof()) сделал file.close(); ...

Ifstream ошибка - C++
int main(int argc, char* argv) { setlocale(LC_ALL,&quot;Russian&quot;); // корректное отображение Кириллицы char buff; // буфер...

не работает в ifstream - C++
Сам очень плохо разбираюсь в &lt;fstream&gt; Вот код, который должен &quot;записывать и выводить&quot; данные из ранее записанного текстового документа: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
18.11.2013, 20:53     ifstream считывает 0 #2
добавьте после 4й строки
C++
1
f1.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
и посмотрите, что произойдет.
СуперОля
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 6
18.11.2013, 20:55  [ТС]     ifstream считывает 0 #3
Необработанное исключение в "0x75699617" в "disretLaba3.exe": Исключение Microsoft C++: std::ios_base::failure по адресу 0x0020fa38..
Вот весь код программы
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// disretLaba3.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<math.h>
#include<conio.h>
using namespace std;
const int K=6;
float kom[2][11];
float rez[2][K+1];
float komrez[2][K+1];
 
bool prov(float x)
{
    bool pro=false;
    for(int i=0;i<K;i++) if(rez[1][i]==x) pro=true;
    return pro;
}
 
void zam(float x,float ind)
{
    for(int i=0;i<K;i++)
        if(rez[1][i]==x) rez[0][i]=rez[0][i]*ind;
}
 
void Combinations(bool RetVal, bool SortVal, char X[],char (Y)[],unsigned A_Size,int z=0)
 {
     if ( z==K )
     {
        for (int i = 0; i < K; i++) {rez[1][i]=Y[i]-47;}
            rez[0][K]=0;
        for(int i=0;i<K;i++) {rez[0][i]=kom[1][(int)rez[1][i]];
    }
//-----------------------------------------------------------------------------------------------
    if(prov(3)&&prov(7)) {zam(3,0.7);zam(7,0.5);}
    if(prov(8)&&(prov(10)==false)) {zam(8,0.6);}
    if(prov(10)&&(prov(8)==false)) {zam(10,0.6);}
    if(prov(4)&&prov(5)&&prov(6)) {zam(4,0.7);zam(5,0.7);zam(6,0.8);}
    else
    {   
        if(prov(4)&&(prov(5)==false)) {zam(4,0.5);}
    if(prov(5)&&(prov(4)==false)) {zam(5,0.5);}
    if(prov(6)&&(prov(1)==false)&&(prov(2)==false)) {zam(6,0.5);}}
    if(prov(9)&&prov(7)&&prov(8)) {zam(9,0.5);}
    else {
        if(prov(9)&&(prov(7)==false)) zam(9,0.5);}
//-----------------------------------------------------------------------------------------------
        for(int i=0;i<K;i++) rez[0][K]+=rez[0][i];
        if(komrez[0][K]<rez[0][K])
        for(int i=0;i<K+1;i++) for(int j=0;j<2;j++) komrez[j][i]=rez[j][i];}
else 
    for (int j=0; j < A_Size-1; j++){
    Y[z]=X[j];
    if (!RetVal) for (int m = 0; m < z; m++)
    if (Y[m]==Y[z]) goto Next;
    if (!SortVal&& (z>0) && (Y[z]<Y[z-1])) continue;
    Combinations(RetVal,SortVal,X,Y,A_Size,z+1);
Next:;
    } 
}
 
int main()
{
    ifstream f1("n.in");
    ofstream f2("n.out");
    float x,x1;
    f1.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
    for(int i=1;i<11;i++)
    { 
        f1>>kom[0][i];
        cout<<kom[0][i];
        f1>>kom[1][i];
        cout<<kom[0][i];
    }
 
 
    
 
 
    char X[] = "0123456789";
    char Y[sizeof(X)];
 
    Combinations(0,0,X,Y,sizeof(X));
    cout<<"    Best team:"<<endl;
    cout<<"|-------|--------|"<<endl;
    cout<<"|Nomer\t|Strength|"<<endl;
    cout<<"|-------|--------|"<<endl;
    for(int i=0;i<K;i++) cout<<"| "<<komrez[1][i]<<"\t| "<<komrez[0][i]<<"\t |"<<endl<<"|-------|--------|"<<endl;
    cout<<"\t = "<<komrez[0][K]<<endl;
    cout<<endl<<"saved successfully";
 
    for(int i=0;i<K;i++) f2<<komrez[1][i]<<" "<<komrez[0][i]<<endl;
     f2<<"= "<<komrez[0][K];
    return 0;
}
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
18.11.2013, 20:56     ifstream считывает 0 #4
потому что путь к вашему файлу не найден
СуперОля
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 6
18.11.2013, 20:58  [ТС]     ifstream считывает 0 #5
Ну я их создала в папке Debug
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.11.2013, 21:00     ifstream считывает 0 #6
После открытия файла принято проверять, а открылся ли он вообще. Для этого у класса fstream есть метод .is_open()
СуперОля
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 6
18.11.2013, 21:08  [ТС]     ifstream считывает 0 #7
Так что мне делать? Почему файлы могут не открываться?Находятся в папки дебаг. Текстовые файлы.Может .in , .out это не имена текстовых документов а разрешения ?
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.11.2013, 21:11     ifstream считывает 0 #8
Цитата Сообщение от СуперОля Посмотреть сообщение
Может .in , .out это не имена текстовых документов а разрешения ?
А Вы как думаете?))) Конечно расширения файлов. Имя у них одно n.
СуперОля
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 6
18.11.2013, 21:25  [ТС]     ifstream считывает 0 #9
Поменяла, теперь это не текстовые файлы. Но вылетает окно на котором написано что вызвана функция abort()
zss
Модератор
Эксперт С++
6284 / 5887 / 1909
Регистрация: 18.12.2011
Сообщений: 15,115
Завершенные тесты: 1
18.11.2013, 21:25     ifstream считывает 0 #10
Еще один нюанс.
Если Вы не указываете полный путь к файлу,
то файл ищется в текущей директории,
а она при отладке совсем не Debug,
а та, в которой находится файл проекта.
Поэтому, если сомневаетесь, то пишите так:
C++
1
ifstream f1("c:\\папка где находится файл\\n.in");
И не забывайте про двойные обратные слаши (\\).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2013, 21:58     ifstream считывает 0
Еще ссылки по теме:

Объект ifstream!!! - C++
Скажите пожалуйста, почему при создании объекта ifstream(например fin) и привязке его к определенному файлу (ifstream fin(filename);), и...

Unget and ifstream - C++
Я правильно понимаю, что если ifstream in; string str1; in &gt;&gt; str1, то unget обратно эту строку вернет?

Объект ifstream!!! - C++
Почему при попытке повторного вывода содержимого файла он не выводится???? Почему не работает эта строка: fin.open(fileName); ???? Вот...

Считывание из файла - ifstream - C++
Пожалуйста помогите! Сама пробовала! Без результатно!!! Пожалуйста помогите сделать так чтобы текст он считывал с тхт файла. А не так...

Перегрузка оператора ifstream >> - C++
Перегрузил &gt;&gt; для ифстрима friend ifstream &amp;operator &gt;&gt; (ifstream &amp;is, Car &amp;cc) { is &gt;&gt; cc.weight &gt;&gt; cc.year &gt;&gt; cc.name; return...


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

Или воспользуйтесь поиском по форуму:
СуперОля
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 6
18.11.2013, 21:58  [ТС]     ifstream считывает 0 #11
Всем большое спасибо
А можете еще объяснить программу?) Несколько комментариев )

Добавлено через 23 минуты
Объясните пожалуйста эти момент
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
bool prov(float x)
{
    bool pro=false;
    for(int i=0;i<K;i++) 
        if(rez[1][i]==x)
            pro=true;
    return pro;
}
 
void zam(float x,float ind)
{
    for(int i=0;i<K;i++)
        if(rez[1][i]==x) 
            rez[0][i]=rez[0][i]*ind;
}
 
void Combinations(bool RetVal, bool SortVal, char X[],char (Y)[],unsigned A_Size,int z=0)
 {
     if ( z==K )
     {
        for (int i = 0; i < K; i++) {rez[1][i]=Y[i]-47;}
            rez[0][K]=0;
        for(int i=0;i<K;i++) {rez[0][i]=kom[1][(int)rez[1][i]];
    }
Yandex
Объявления
18.11.2013, 21:58     ifstream считывает 0
Ответ Создать тему
Опции темы

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