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

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

Войти
Регистрация
Восстановить пароль
 
frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
#1

Ввод-вывод из файла, ошибка - C++

20.05.2014, 19:35. Просмотров 428. Ответов 11
Метки нет (Все метки)

Помогите, программа выводит числа из файла, потом вписывает в файл что-нибудь. Числа будут обрабатываться, но это будет чуть позже. Так вот: Программа исправно вписывает в файл текст, значения переменных, но вот в переменные значения не кладет!
Что не так?
З.Ы. Возможно, дело в пути файла? Но если делать любой из двойных слешев одинарным, то путь подчеркивает.
Текст:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "conio.h"
using namespace std;
int main()
{
    ifstream read_file( "C:\\Users\\User\\Desktop\filename.txt");            //функция ввода
    int a, b;
    read_file>>a>>b;
    ofstream write_file ("filename.txt");
    read_file.close();
    write_file<<a<<b<<"Что-нибудь";                                          //и вывода
    write_file.close();
    return 0;
}
И еще: программа запускается, но ничего не происходит. Вывод есть только, если запустить экзешник в папке дебага, где, кстати, и лежит файл вывода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 19:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод-вывод из файла, ошибка (C++):

Добиться, чтобы была ошибка открытия файла (файловый ввод/вывод) - C++
Здравствуйте! Вот небольшая прога которая по идее должна ждать пока файл не будет доступен и произвести в него запись int main() { ...

Ввод-вывод из файла - C++
Товарищи форумчане, помогите разобраться с выводом из файла на экран. Забить в файл у меня получилось,авот вывести никак. Вот часть кода:...

Ввод/Вывод в/из файла - C++
Задача такая. На вход подаётся текст (считать из файла). На выходе (записать в файл) получаем следующее все символы, встреченные в...

Ввод и вывод из файла - C++
Есть программа. Нужно сделать так, чтобы размерность матрицы можно было считать из файла и чтобы готовую или исходную матрицу можно было...

Ввод\вывод файла - C++
Здравствуйте, уважаемые программисты. Есть проблемка: нужно прочитать из файла текст и вывести его на экран. Пробую через символьный массив...

Ввод\вывод из файла - C++
Подскажите в чем ошибка при чтении из файла и как правильно? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
20.05.2014, 19:39 #2
Вам нужно обязательно указывать абсолютный путь ??

С относительным будет все в порядке
аналогично тому как вы сделали у ofstream,
frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
20.05.2014, 19:42  [ТС] #3
Абсолютный - я так понимаю,как указал. А как еще можно? Если не указывать такой путь, то что там писать?

Добавлено через 1 минуту
C
1
2
ifstream read_file( "readfilename.txt");
    ofstream write_file ("outfilename.txt");
так?
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
20.05.2014, 19:44 #4
Цитата Сообщение от frostbool Посмотреть сообщение
"C:\\Users\\User\\Desktop\filename.txt"
1. ну здесь как бы и перед "filename.txt" тоже двойной слэш нужен.
2. Написать просто "filename.txt" - это относительный путь. файл должен находится рядом с "exe" программой.
frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
20.05.2014, 19:51  [ТС] #5
Спасибо)
Переписал пути, случайно указал и там, и там адрес считываемого, теперь огромная таблица чисел заменилась на 2 и 3)
Но эти 2 и 3 в выводной не записывает, что любопытно.

Добавлено через 3 минуты
И опять-таки программа нормально срабатывает лишь по экзешнику. Кстати, первые числа - 2 и 0, все сработало.
Заменил на 20 и 01, один ноль сжевала, вывод - 201
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
20.05.2014, 19:52 #6
frostbool, Да. Только файл должен лежать там же, где в данный момент запускается программа

можно еще обрабатывать всякого рода ошибки на предмет того ,что с файлом

в VisualStudio если так запускаешь F5 то где лежит исходник,
если exe запускаете то рядом с экзешником
srin
25 / 25 / 11
Регистрация: 05.05.2014
Сообщений: 115
20.05.2014, 19:54 #7
так у вас 01 - это и будет в int - "1". Надо в char или string записывать.
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
20.05.2014, 19:55 #8
frostbool, ну выводить надо с пробелами fout << a << ' ' << b;
иначе все подряд будет
frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
20.05.2014, 23:57  [ТС] #9
Это я читал, так можно.
Я же в файле лишь числа храню.
С 201 разобрался. В общем, все работает пока, но лишь по экзешнику.
Сейчас буду прописывать обработку ввода, чтобы число забиралось, кидалось в массив, так со всеми.
Потом сортировка и вывод в файлик.

Добавлено через 38 секунд
Точно, спасибо)

Добавлено через 4 часа 0 минут
upd: А как записывать числа из файла дальше? Т.е. в переменную записывается лишь первое число из файла, как записывать дальше?
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
21.05.2014, 05:49 #10
Цитата Сообщение от frostbool Посмотреть сообщение
upd: А как записывать числа из файла дальше? Т.е. в переменную записывается лишь первое число из файла, как записывать дальше?

всмысле ?
продолжаете читать
varOne << varTwo << varThree << varFour << ..

ну или лучше в массив если много ;

При каждом открытий файла каретка переноситься в начало ;
Т.е. чтение будет с начала при каждом объявлений

C++
1
    std::ifstream fin("Ogogo");
frostbool
-7 / 0 / 0
Регистрация: 09.05.2013
Сообщений: 35
22.05.2014, 00:07  [ТС] #11
Цитата Сообщение от Qazan Посмотреть сообщение
varOne << varTwo << varThree << varFour << ..
Не понял.
C++
1
read_file>>a;
Вот допустим, я хочу вместо a поставить m[i]. Считает в m[i]. Но как прописать запись всего массива?
Можно кусочком программы? Она ведь ма-аленькая ^^

тута)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "conio.h"
#define size 500
using namespace std;
int main()
{
    int a,m[size],cnt=0;
    ifstream read_file("infilename.txt");
    read_file>>a;
    ofstream write_file ("outfilename.txt");
    read_file.close();
    m[cnt]=a;
    printf("%d\n",m[cnt]);
    write_file<<a<<" \n";
    write_file.close();
    return 0;
}
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 797
Записей в блоге: 10
22.05.2014, 04:29 #12
циклом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 04:29
Привет! Вот еще темы с ответами:

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Ввод\вывод в файл\из файла - C++
#include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; #include...

Ввод/вывод данных в/из файла - C++
Ребят, такая проблемка, когда ввожу строки , в файле они отображаются иероглифами(не все, почему то только те строки, у которых длинна 3...

Ввод из файла и вывод в файл - C++
#include&lt;iostream&gt; #include&lt;iomanip&gt; #include&lt;ctime&gt; #include&lt;cstdlib&gt; int main(){ const int n=6, m=7; int mat; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.05.2014, 04:29
Ответ Создать тему
Опции темы

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