Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Функции для ввода-вывода по строкамСодержание книги
Поиск на нашем сайте
Чтение строки из потока
Чтение по строкам осуществляет функция fgets() Прототип: char * fgets(char *_s, int _size, FILE *_fp);
Описание: fgets() считывает из потока _fp строку символов и помещает ее в _s. Ввод завершается после считывания _size-1 символов или при вводе символа перехода на следующую строку, смотря, что произойдет раньше. fgets() прекращает ввод строки при получении символа перехода на следующую строку. Нулевой байт добавляется в конец строки для индикации ее конца. Символ конца строки не отбрасывается и располагается непосредственно перед нуль-символом.
Возвращаемое значение: При успешном завершении возвращает указатель на _s, при ошибке или конце файла возвращает указатель NULL.
Для ввода строки со стандартного вводного потока (с клавиатуры) используется функция gets().
Прототип: char * gets(char *_s);
Описание: Функция gets() читает строку символов, оканчивающуюся символом перевода строки, в переменную *_s из стандартного входного потока stdin. Данная символьная строка оканчивается символом перехода на новую строку, который при записи в *_s заменяется на нулевое окончание (\0). В отличие от scanf(), gets() позволяет вводить строки, содержащие символы пробела и табуляции. Все, что было введено до перевода каретки, помещается в _s.
Возвращаемое значение: При успешном завершении, функция gets() возвращает строку _s; при достижении конца файла (EOF) или ошибке возвращается NULL.
Пример: #include <stdio.h>
int main(void) { char string[133]; printf("Введите строку:"); gets(string); printf("Cтрока = '%s'\n,string); }
Запись строки в поток
Запись в поток по строкам осуществляет функция fputs() Прототип: int fputs(char *_s, FILE *_fp);
Описание: Функция fputs() копирует строку _s, ограниченную нулевым байтом, в поток _fp. Она добавляет в конец строки символ перехода на новую строку. Нулевой символ в файл не переносится.
Возвращаемое значение: При успешном завершении fputs() возвращает последний выведенный символ. В противном случае возвращает EOF. Пример: #include<stdio.h>
int main(void) { /* вывести строку в поток */ fputs("Тестовый пример",stdout); return 0; }
Для вывода строки в стандартный выводной поток (на экран) используется функция puts(). Прототип: int puts(char *_s);
Описание: Функция puts() копирует строку символов с нулевым окончанием в стандартный выходной поток stdout, причем добавляет в конец символ перехода на новую строку.
Возвращаемое значение: При успешном завершении, функция puts() возвращает ненулевое значение. В противном случае возвращается EOF. Пример: #include<stdio.h>
int main(void) { /* вывести строку в поток */ puts("Тестовый пример"); return 0; }
Задача 164. Программа создает программным путем (по строкам) текстовый файл на диске. Ввод строк с клавиатуры осуществляет функция fgets(), вывод на диск построчно – функция fputs().
// fget_fput3_rus.cpp: 14.05.2012г // Ввод строк с клавиатуры(fgets) и создание текстового файла(fputs) // Использование fgets и fputs для обычного в/ы (stdin / stdout)
#include<conio.h> #include<stdio.h> #include <stdlib.h> #include <iostream> using namespace std;
const int size=120;
int main() { char line[size]; char nameout[15]; FILE *out;
system("chcp 1251"); //переключаем консоль в кодировку win1251 // ОБЯЗАТЕЛЬНО ПЕРЕКЛЮЧИТЬ ШРИФТЫ С ТОЧЕЧНЫХ НА Lucida console // после запуска программы щелчком мыши в левом верхнем углу
cout<< "Введите имя создаваемого файла,например,D:\omar.txt\n"; gets(nameout);
if((out=fopen(nameout, "a+"))==NULL) { cout<< " Не могу открыть выводной файл... "; getch(); exit(1); } cout<< "Введите несколько строк текста, потом Ctrl+Z \n";
while(fgets(line,size,stdin)!=NULL && line[0]!='\n') { fputs(line,out); fputs(line, stdout); // puts(line); } cout<< "Файл создан"; fclose(out); getch(); return 0; }
Задача 165. В программе решается следующая задача. На основе файла, созданного предыдущей программой (см.Задачу 164), строится новый файл, в котором каждая строка: 1 вариант) содержит только буквы исходной строки 2 вариант) перевернута по отношению к исходной #include "stdafx.h" #include<conio.h> #include<stdio.h> #include <iostream> using namespace std; // к записи fputs добавляет два символа-\r и \n // Чтение текстового файла порциями до 255 символов // Когда fgets встречает символ \n, она его сохранит в строке, // и вставит после него \0 // или прочтёт size-1 символов или достигнет EOF - она // добавит '\0'-символ, чтобы сформировать строку
const int SIZE=256;
void main() { FILE *out, *in; char ch, zap1[SIZE],zap2[SIZE]; int i,k; //char namein[15],nameout[15]; system("chcp 1251");
//printf("Введите имя входного файла,например,D:\\eddy.doc\n"); //gets(namein); in=fopen("D:\\eddy.doc","r"); if(in==NULL) {puts("Входной файл не открыт"); exit(1);} //printf("Введите имя выходного файла,например, dima.txt\n"); // gets(nameout);
out=fopen("D:\\dima.TXT","w"); if(out==NULL) {puts("Выходной файл не открыт"); exit(2);}
// 1 вариант) содержит только буквы исходной строки /* while(fgets(zap1,SIZE,in)!=NULL) { i=0; k=0; while (ch=zap1[i]) { if (ch>='А' && ch<='Я'|| ch>='а' && ch<='п'|| ch>='р' && ch<='я'|| ch>='a' && ch<='z'|| ch>='A' && ch<='Z'|| ch== ' '|| ch=='\n') // обыграть. Сперва без '\n' zap2[k++]=ch; i++; } zap2[k]=0; fputs (zap2, out); } */ //2 вариант) переслать строки из файла в файл с переворотом
while(fgets(zap1,SIZE,in)!=NULL) { i=0; while (zap1[i]) i++; k=0; while (--i >=0) { zap2[k++]=zap1[i];}
zap2[k]=0; fputs (zap2, out); } puts("Файл скопирован"); fclose(out); fclose(in);
}
|
||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 355; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.194.44 (0.008 с.) |