Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
sexys
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 14
#1

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++

01.11.2015, 19:26. Просмотров 678. Ответов 6
Метки нет (Все метки)

Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с маленькой. Использовать fgets () и fputs ().
http://www.cyberforum.ru/cpp-beginners/thread1981018.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2015, 19:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... (C++):

Скопировать только чётные строки в другой файл
Добрый день. Условие задачи: в файле F1.txt построчно записаны "Имя Фамилия"....

Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
#include <iostream> #include <math.h> using std::cin; using std::cout;...

Создать файл с квадратной матрицей; чётные элементы переместить в один файл, нечётные - в другой
• Создать файл с массивом А. • Четные элементы переместить в файл А...

Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*»
Прошу помочь с задачей.Теории не было, сразу практика.Должны своими мозгами ,...

В файл h записать строки текстового файла f, занимающие нечётные позиции, в файл g - чётные
по C++ задали задание: Организовать текстовый файл f состоящий из N строк....

6
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
01.11.2015, 20:28 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
#define LINESIZE 100
 
int
main()
{
    char buf[LINESIZE];
    FILE* fin;
    FILE* fout;
    int cnt = 0;
    
    fin = fopen("input", "r");
    if(!fin)
    {
        perror("input");
        exit(1);
    }
    
    fout = fopen("output", "w");
    if(!fout)
    {
        perror("output");
        exit(1);
    }
    
    while(fgets(buf, LINESIZE - 1, fin))
    {
        ++cnt;
        buf[0] = cnt % 2 ? tolower(buf[0]) : toupper(buf[0]);
        fputs(buf, fout);
    }
    return 0;
}
1
sexys
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 14
01.11.2015, 20:51  [ТС] #3
retmas, спасибо, только не понятно где создаётся текстовый файл с тексом, если код вставить то ниче не работает
0
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
01.11.2015, 20:57 #4
Цитата Сообщение от sexys Посмотреть сообщение
где создаётся текстовый файл с тексом
да хоть в блокноте
0
sexys
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 14
01.11.2015, 21:31  [ТС] #5
retmas, проверил, не меняет четные на большие и нечетные на маленькие, просто копирует...можешь переделать код, чтобы вводить свой текст, и потом в конце он сразу на консоли показывал как он переделался

Код
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
int main()
{
	using namespace std;
	setlocale(LC_ALL, "Russian");
	FILE *F1;
	FILE *F2;
	int k, i = 0;
	char str[255];
	errno_t err;
	err = fopen_s(&F1, "f1.txt", "w");
	for (int i = 0; i<4; i++)
	{
		fflush(stdin);
		printf("введите строку %d : ", i + 1);
		gets_s(str);
		fputs(str, F1);
		fputs("\n", F1);
	}
	fclose(F1);
	fclose(F1);
	err = fopen_s(&F1, "f1.txt", "r");
	err = fopen_s(&F2, "f2.txt", "w");

	for (int i = 0; i < 10 && fgets(str, 255, F1) != NULL; i++)
	{
		if (i % 2 == 0)
			fputs(str, F2);
	}
	


	fclose(F1);
	fclose(F2);
}
вот пример, только тут четный просто выводит, а мне надо чтобы весь текст, но четные строки с большой буквы, а не четные с маленькой

Добавлено через 23 минуты
retmas, ток что проверил ещё раз твой вариант, короче, оно пишет только первую букву нечетной строки, а нужно всю строку заглавными+если написать сразу всё заглавными) оно чётные строки только 1 букву меняет на маленькую)
0
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
01.11.2015, 21:50 #6
Лучший ответ Сообщение было отмечено sexys как решение

Решение

ты сам просил
Цитата Сообщение от sexys Посмотреть сообщение
чётные строки должны быть с большой буквы, а нечетные с маленькой
а теперь нужно
Цитата Сообщение от sexys Посмотреть сообщение
всю строку заглавными
ставь задачу яснее

Добавлено через 3 минуты
C
1
2
3
4
5
6
7
    while(fgets(buf, LINESIZE - 1, fin))
    {
        ++cnt;
        for(char* p = buf; *p; ++p)
            *p = cnt % 2 ? tolower(*p) : toupper(*p);
        fputs(buf, fout);
    }
1
sexys
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 14
02.11.2015, 18:43  [ТС] #7
Вот ещё нормальный вариант кому надо, но нужно сначала файлики самому создать и в них текст встунуть
Код
#include <iostream>
#include <fstream>

#define BUFF_SIZE 256
#define FILE_IN "F1.txt"
#define FILE_OUT "F2.txt"

using namespace std;
void convert(char*text, bool mBIG);

void main()
{
	FILE*f1 = fopen(FILE_IN, "rt");
	if (!f1) return;
	FILE*f2 = fopen(FILE_OUT, "wt");
	if (!f2)
	{
		fclose(f1);
		return;
	}
	int Line = 0;
	char buff[BUFF_SIZE];
	while (fgets(buff, BUFF_SIZE, f1))
	{
		convert(buff, Line % 2);
		fputs(buff, f2);
		Line++;
	}
	fclose(f1);
	fclose(f2);
}

void convert(char*text, bool mBIG)
{
	char ch;
	int i = 0;
	for (int i = 0; text[i];i++)
	{
		ch = text[i];
		if (mBIG)
		{
			if (ch<'a' || ch>'z')continue;
			ch = 'A' + (ch - 'a');
		}
		else 
		{
			if (ch<'A' || ch>'Z')continue;
			ch = 'a' + (ch - 'A');
		}
		text[i] = ch;
	}
}
0
02.11.2015, 18:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2015, 18:43
Привет! Вот еще темы с решениями:

Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв и пробела
Дан текстовый файл F. Переписать в другой файл G все символы, отличные от букв...

дан текстовый файл.определить количество нечетных чисел и записать их в др текст файл
Очень Простая задача

Где должен быть текстовый файл, чтобы программа читала с него текст
Вот куда мне поместить файл &quot;input.txt&quot; чтобы прога читала с него текст? int...

Дан текстовый файл f. Переписать текст в файл g, удалив все группы букв s (s передается параметром)
В общем нужно из строки удалить подстроку, которая задается с клавиатуры


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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