Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2011, 18:39   #1
firephenix
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 89
По умолчанию В чём то ошибка :(

Есть два файла input.txt и output.txt, нужно прочитать первую строку первого файла, и записать во второй, но во время отладки программы на fgets(s,20,f1); выскакивает:
debug assertion failed
Expression: (str!=NULL).
Я использовал visual studio c++ 2005. Помогите пожалуйста новичку.
Код:
#include "stdafx.h"


int main()
{
	FILE *f1,*f2;
	char s[20];
	f1=fopen("input.txt","r");
	f2=fopen("output.txt","w");
	fgets(s,20,f1);
	fputs(s,f2);
	fclose(f1);
	fclose(f2);
	return 0;
}
firephenix вне форума Ответить с цитированием
Старый 30.06.2011, 18:51   #2
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

А почему бы не использовать более современный C++? Например так:
Код:
#include <fstream>
#include <string>

using namespace std;

int main()
{
	std::ifstream f1("d:\\abc\\input.txt"); //файл для чтения
	std::ofstream f2("d:\\abc\\output.txt"); //файл для записи
	string s;
	f1 >> s;
	f2 << s;
	f1.close();
	f2.close();
	return 0;
}
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 30.06.2011, 18:57   #3
firephenix
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 89
По умолчанию

Всё равно выскакивает такая же ошибка, может у меня проблема с компилятором?
firephenix вне форума Ответить с цитированием
Старый 30.06.2011, 19:11   #4
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Если Вы
1. Создали проект "с нуля" (создали чистый проект и в нем создали новый, чистый *.cpp файл)
2. Скопировали мой код слово-в-слово
3. Исправили строчки
Код:
	std::ifstream f1("d:\\abc\\input.txt"); //файл для чтения
	std::ofstream f2("d:\\abc\\output.txt"); //файл для записи
4. Убедились, что существует файл input.txt, и в нем есть хотя бы одна строка (а лучше несколько - это не обязательно, но мало ли...)
5. Имеете право на запись в папку, в которой будет лежать output.txt
То, наверное, Вам стоит обратится к специалисту более высокой квалификации, чем у меня, т.к. у меня все работает и я не представляю в чем там еще может быть дело
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 01.07.2011, 01:06   #5
firephenix
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 89
По умолчанию

Спасибо.
P.S. забыл изменить путь к файлам.
firephenix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём ошибка? Jony217 Общие вопросы C/C++ 12 02.04.2011 09:03
В чём ошибка? Simak63 Помощь студентам 2 30.03.2011 20:04
В чём ошибка? Roman Общие вопросы C/C++ 2 24.12.2008 01:42
В чём ошибка??? pasha_1 Общие вопросы C/C++ 11 25.11.2008 01:26