Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод символов из текстового файла↑ ⇐ ПредыдущаяСтр 2 из 2 Содержание книги
Поиск на нашем сайте
#include <fstream> #include <iostream> using namespace std;
int main() { char ch; ifstream infile ("TEST.TXT"); //открытие потока для ввода while(infile) //ввод до EOF или ошибки { infile. get(ch); //ввод символа cout << ch; //вывод символа } cout << endl; _getch(); return 0; //при завершении программы файл будет закрыт } ////////////////////////////////////////////////////////////////
Вывод строк в текстовый файл #include <fstream> using namespace std;
int main() { ofstream outfile ("TEST.TXT"); // открытие потока для вывода //вывод в файл outfile << "I fear thee, ancient Mariner! \n "; outfile << "I fear thy skinny hand \n "; outfile << "And thou art long, and lank, and brown," << endl; outfile << "As is the ribbed sea sand." << endl; cout << "File written\n"; _getch(); return 0; //при завершении программы файл будет закрыт } //////////////////////////////////////////////////////////////// Ввод из текстового файла строк #include <fstream> #include <iostream> using namespace std;
int main() { const int MAX = 80; //размер буфера char buffer[MAX]; //буфер ifstream infile ("TEST.TXT"); // открытие потока для ввода while(!infile.eof ()) //пока не конец файла { infile.getline (buffer, MAX); //читать строку из файла cout << buffer << endl; //вывести строку } _getch(); return 0; //при завершении программы файл будет закрыт }
//////////////////////////////////////////////////////////////// Чтение и вывод на экран буфера текстового файла #include <fstream> #include <iostream> using namespace std;
int main() { ifstream infile ("TEST.TXT"); // открытие потока для ввода
cout << infile.rdbuf (); //вывод буфера на экран cout << endl; _getch(); return 0; //при завершении программы файл будет закрыт }
//////////////////////////////////////////////////////////////// Пример использования функций, текстовых файлов и многофайловой компиляции 1. Описать структуру с именем STUDENT, содержащую следующие поля: · NAME – фамилия и инициалы; · номер группы; · успеваемость (массив из пяти элементов). 2. Написать программу, выполняющую следующие действия: · вывод десяти структур данных типа STUDENT с клавиатуры в файл; · чтение из файла и вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 3; · если таких студентов нет, вывести соответствующее сообщение. ////////////////////////////////////////////////////////////////
//head.h константы, определение структурного типа, прототипы функций const int KOL_ST = 10; const int KOL_OC = 5; const int BAL = 3; struct student { unsigned short gruppa; char fio[20]; unsigned short ysp[KOL_OC]; };
int vivod_file_txt (char [],const int, const int); int vvod_file_txt (char[],const int, const int); int otsenka (unsigned short [],const int,const int); //////////////////////////////////////////////////////////////// // stdafx.h #pragma once
#define WIN32_LEAN_AND_MEAN// Exclude rarely-used stuff from Windows headers #include <stdio.h> #include <tchar.h>
// TODO: reference additional headers your program requires here #include <iostream> #include <fstream> #include <iomanip> #include <conio.h> #include "head.h" using namespace std; //////////////////////////////////////////////////////////////// //func.cpp #include "stdafx.h" int vivod_file_txt (char name_file[],const int kol_st, { ofstream outfile (name_file); if (!outfile) { cout <<"error ofstream"<<endl; _getch(); return 1; } student stud; //определение структуры for (int i=0; i<kol_st; i++) { //заполнение полей структуры cout <<"vvedite fio studenta #"<<i+1<<" "; cin >>stud.fio; //чтение поля структуры с клавиатуры outfile << stud.fio <<' \n '; //запись поля структуры в файл
cout << "vvedite gryppy studenta #"<<i+1<<" "; cin >> stud.gruppa; outfile << stud.gruppa <<' \n ';
cout <<"vvedite otsenki studenta #"<<i+1<<endl; for (int j=0; j<kol_oc; j++) {cin >>stud.ysp[j]; outfile << stud.ysp[j] <<' \n '; }
} cout << "file is made \n" << endl; outfile.close(); return 0; }
//предполагаем, что если из файла считывается строка с фамилией int vvod_file_txt (char name_file[],const int kol_oc, const int bal) { bool prov = false; ifstream infile (name_file); if(!infile) { cout<<"error ifstream"<< endl; _getch(); return 1; } student stud; while (true) { infile >> stud.fio; if (infile.eof()) break; //проверка по stud.fio на конец файла infile >> stud. gruppa; for (int j=0; j<kol_oc; j++) infile >>stud.ysp[j]; if (otsenka(stud.ysp,kol_oc,bal)) { prov = true; cout << "student " << setw(15) << stud.fio << " iz " << stud.gruppa << "-y gruppi imeet hotya bi odny troiky" << endl; } }
if (!prov) cout << "net studentov, imeyuschih troiki" << endl; infile.close (); return 0;
} int otsenka (unsigned short ysp[],const int kol_oc, const int bal) { for (int i=0;i<kol_oc;i++){ if (ysp[i]==bal) return 1; } return 0; }
//////////////////////////////////////////////////////////////// //main.cpp
#include "stdafx.h" int main () { char name_file[20]; //имя файла
cout <<"vvedite imya faila: "; cin.getline (name_file,20);
if (vivod_file_txt ( name_file,KOL_ST,KOL_OC )) {cout <<"error vivod_file_txt() "<<endl; _getch(); return 1; } else if (vvod_file_txt ( name_file,KOL_OC, BAL )) { cout <<"error vvod_file_txt() "<<endl; _getch(); return 2; } else _getch(); return 0; }
//////////////////////////////////////////////////////////////// Ввод-вывод в двоичный файл
#include <fstream> #include <iostream> using namespace std; const int MAX = 100; //размер буфера int buff[MAX]; //буфер для данных
int main() { for(int j=0; j<MAX; j++) //заполнение буфера данных buff[j] = j; //(0, 1, 2,...) // создание потока вывода ofstream os ("edata.dat", ios::binary); //вывод из буфера в поток os.write(reinterpret_cast<char*>(buff), MAX*sizeof(int)); os.close(); //закрыть поток
for(int j=0; j<MAX; j++) //очистка буфера buff[j] = 0; //создание потока ввода ifstream is ("edata.dat", ios::binary); //чтение из потока в буфер is.read(reinterpret_cast<char*>(buff), MAX*sizeof(int));
for(int j=0; j<MAX; j++) //проверка данных if(buff[j]!= j) { cerr << "Data is incorrect\n"; return 1; } cout << "Data is correct\n"; _getch(); return 0; //при завершении программы файл будет закрыт }
//////////////////////////////////////////////////////////////// Пример использования функций, бинарных файлов и многофайловой компиляции 1. Описать структуру с именем STUDENT, содержащую следующие поля: · NAME – фамилия и инициалы; · номер группы; · успеваемость (массив из пяти элементов). 2. Написать программу, выполняющую следующие действия: · ввод десяти структур данных типа STUDENT с клавиатуры в файл; · вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 3; · если таких студентов нет, вывести соответствующее сообщение. //////////////////////////////////////////////////////////////// //head.h
const int KOL_ST = 10; const int KOL_OC = 5; const int BAL = 3;
struct student { unsigned short gruppa; char fio[20]; unsigned short ysp[KOL_OC]; };
int vivod_file (char [],const int, const int); int vvod_file (char[],const int, const int); int otsenka (unsigned short [],const int,const int); //////////////////////////////////////////////////////////////// // stdafx.h #pragma once
#define WIN32_LEAN_AND_MEA// Exclude rarely-used stuff from Windows headers #include <stdio.h> #include <tchar.h>
// TODO: reference additional headers your program requires here #include <iostream> #include <fstream> #include <iomanip> #include <conio.h> #include "head.h" using namespace std; //////////////////////////////////////////////////////////////// //func.cpp #include "stdafx.h" int vivod_file (char name_file[],const int kol_st,const int kol_oc) {
ofstream file (name_file,ios::binary|ios::out); if (!file) { cout <<"error ofstream"<<endl; _getch(); return 1; } student stud; //определение структуры for (int i=0; i<kol_st; i++) {//цикл заполнения полей структуры cout <<"vvedite fio studenta #"<<i+1<<" "; cin >>stud.fio; cout <<"vvedite gryppy studenta #"<<i+1<<" "; cin >>stud.gruppa; cout <<"vvedite otsenki studenta #"<<i+1<<endl; for (int j=0; j<kol_oc; j++) cin >>stud.ysp[j]; file.write (reinterpret_cast< char* >(&stud), sizeof (student)); //вывод в файл заполненной структуры } cout << "file is made \n" << endl; file.close(); return 0; }
int vvod_file (char name_file[],const int kol_oc, const int bal) { bool prov = false; ifstream file (name_file,ios::binary|ios::in); if(!file) { cout<<"error ifstream"<< endl; _getch(); return 1; } student stud; while (true) { file.read (reinterpret_cast< char* > (&stud), sizeof (student)); if (file.eof()) break; if (otsenka(stud.ysp,kol_oc,bal)) { prov = true; cout << "student " << setw(15) << stud.fio << " iz " << stud.gruppa << "-y gruppi imeet hotya bi odny troiky" << endl; } } if (!prov) cout << "net studentov, imeyuschih troiki" << endl; return 0; } int otsenka (unsigned short ysp[],const int kol_oc, const int bal) { for (int i=0;i<kol_oc;i++){ if (ysp[i]==bal) return 1; } return 0; } //////////////////////////////////////////////////////////////// //main.cpp
#include "stdafx.h"
int main () { char name_file[20]; //имя файла
cout <<"vvedite imya faila: "; cin.getline (name_file,20); if (vivod_file ( name_file,KOL_ST,KOL_OC )) {cout <<"error vivod_file() "<<endl; _getch(); return 1; } else if (vvod_file ( name_file,KOL_OC, BAL )) { cout <<"error vvod_file() "<<endl; _getch(); return 2; } else _getch(); return 0;
} ////////////////////////////////////////////////////////////////
Аргументы командной строки using namespace std; int main(int argc, char* argv[]) { cout << "\nargc = " << argc << endl; //количество аргументов
for(int j=0; j<argc; j++) //вывод аргументов cout << "Argument " << j << " = " << argv[j] << endl; return 0; } //////////////////////////////////////////////////////////////// Задание параметров программы в командной строке Задание аргумента при выполнении программы в среде MS Visual C++ 2005 осуществляется следующим образом: · вокне Solution Explorer выделить проект (щелкнуть на названии проекта)à · в меню Project àвыбрать команду Properties à · в открывшемся окне Property Pages выбрать команду Debugging à · в появившейся таблице в поле Command Arguments ввести строку аргументовдля программы.
//в программе в качестве аргумента функции main() задается путь //в командной строке задано proba.txt (для файла из текущей папки) #include <iostream> #include <conio.h> using namespace std;
int main(int argc,char *argv[]) { if (!(argc >=2)) { cout<<"arguments? \n"; _getch(); return 1; }
ifstream fp(argv[1]); cout<<"+++++++++++++++++++++++++++++++++++++++++++++\n"; cout<<argv[1]<<endl; cout<<"+++++++++++++++++++++++++++++++++++++++++++++\n";
if (!fp) { cout<<"error of open file"; _getch(); return 1; } ...... }
////////////////////////////////////////////////////////////////
|
||||
Последнее изменение этой страницы: 2016-12-17; просмотров: 185; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.137.13 (0.01 с.) |