infile.close();
return 0;
}
Для выполнения программы установите путь к файлу с информацией (в среде MSC++6.0) в поле Program arguments (Projectà Settings à закладка Debug)
или в режиме
Программы à стандартные à командная строка наберите:
путь_к _exe-файлу_программы путь_к_файлу_с_информацией
В данной программе введенные с клавиатуры строки записываются в файл. При вводе символа «$» (в качестве первого символа строки) ввод строк прекращается и файл закрывается. Затем файл открывается для считывания и записанная в нем информация считывается, редактируется (пробел заменяется символом |) и выводится в другой файл.
Вызов функции-члена unsetf с флагом skipws используется для учета невидимых символов (пробелов, в частности) при обработке вывода в поток.
При выполнении программы имена файлов необходимо задать в командной строке.
#include <fstream.h>
#include <iostream.h>
#include <string.h>
intmain (int argc, char *argv[])
{if (argc!=3) {
cout << "Input name of file\n";
return 1;
}
ofstreamoutfile (argv[1]); //открытие файла для вывода
if ( !outfile) {
cout << "Input error\n ";
return 2;
}
char str[80];
cout << "string? end - $\n";
while (cout << " ? : ", cin.getline(str, 80), *str != '$'){ //обратите внимание!!!
outfile << str << endl;
}
cout << "file end\n";
outfile.close();
ifstream infile (argv[1], ios::nocreate); //открытие файла для ввода
if ( !infile) {
cout << "Input error\n ";
return 3;
}
ofstreamoutfile_new (argv[2]); //открытие файла для вывода
if ( !outfile_new) {
cout << "Input error\n ";
return 4;
}
char ch;
infile.unsetf(ios::skipws); //вызов функции-члена unsetf объекта infile //с флагом skipws приводит к сбрасыванию флага и // установке режима ввода информации в поток //с учетом невидимых символов
while (!infile.eof()) {
infile >> ch; //посимвольный ввод из файла
if (ch==' ') ch = '|';
if(!infile.eof()) outfile_new << ch;
}
return 0; //потоки infile и outfile_new закрываются при завершении программы
}
Обратите внимание, что если цикл while (cout << " ? : ", cin.getline(str, 80), *str != '$') {
outfile << str << endl;
}
записать по-другому:
while ( *str != '$') {cin.getline(str, 80);
outfile << str << endl;
}
то программа будет работать неправильно (в файл будет записываться символ $)
Вид экрана при работе программы:
string? end - $
? : 123 456 789
? : qwer qwert
? :
? : asdfgh hjk
? : 12345
? : $
file end
Содержимое файла для редактирования:
123 456 789
qwer qwert
//строка из 5 пробелов
asdfgh hjk
12345
Содержимое отредактированного файла:
|||123||456||789
|||||qwer|||||qwert
|||||
|||asdfgh||hjk
12345
В блокноте создадим текстовый файл с именемd:\\TEST.TXT.
#include <iostream.h>
#include <fstream.h>
#include <ctime>
voidfilecopy (ifstream &, ofstream &);
intmain()
{
ofstreamoutfile (“d:/TEST_NEW.TXT”); //создается выходной текстовый файл
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.