// ConsoleApplication5.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include
#include
#include
#include
#pragma warning(disable:4996) // отключение ошибки
using namespace std;
void Sliyanie()
{
FILE *f1, *f2, *fr;
f1 = fopen("file1.txt", "r");
f2 = fopen("file2.txt", "r");
fr = fopen("filer.txt", "w");
int c, n;
while (true)
{
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
if ((n = fgetc(f2)) == EOF) break;
fputc(n, fr);
}
if (c != EOF) while ((c = fgetc(f1)) != EOF) fputc(c, fr);
fclose(f1);
fclose(f2);
fclose(fr);
}
int main()
{
FILE *f1, *f2;
char s[100];
if ((f1 = fopen("file1.txt", "d")) == NULL) return 0;
cout << "Vvedite text 1-file: ";
cin.getline(s, 100);
fprintf(f1, "%s", s);
fclose(f1);
if ((f2 = fopen("file2.txt", "w")) == NULL) return 0;
cout << "Vvedite text 2-file: ";
cin.getline(s, 100);
fprintf(f2, "%s", s);
fclose(f2);
system("cls");
Sliyanie(); // вызов метода слияния файлов
system("pause");
return 0;
}
Другие языки программирования и технологии
Как в этом коде C++ в файл через каждые две буквы добавить цифру любую? За ранее огромное спасибо
Мне в голову приходит только 2 варианта:
1. Увеличить ваш цикл до 6 символов за проход.
while (true)
{
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
fputc('1', fr);
if ((c = fgetc(f2)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
fputc('2', fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f2)) == EOF) break;
fputc(c, fr);
fputc('3', fr);
}
2. Создать строку на 10 символов (6 букв + 3 цифры + конец строки), в конце каждого второго прохода вставлять цифры на каждое третье место, выводить строку файл
int c, n, i = 0;
char temp[10];
temp[9] = '\0';
while (true)
{
if ((c = fgetc(f1)) == EOF) break;
temp[(i >> 1) * 3 + (i++ & 1)] = c;
if ((c = fgetc(f1)) == EOF) break;
temp[(i >> 1) * 3 + (i++ & 1)] = c;
if ((c = fgetc(f2)) == EOF) break;
temp[(i >> 1) * 3 + (i++ & 1)] = c;
if (i == 6)
{
temp[2] = '1';
temp[5] = '2';
temp[8] = '3';
fputs(temp, fr);
i = 0;
}
}
if (i > 0)
{
i = (i >> 1) * 3 + (i & 1);
for (int j = 2; j < i; j += 3)
temp[j] = '1' + j / 3;
temp[i] = '\0';
fputs(temp, fr);
}
1. Увеличить ваш цикл до 6 символов за проход.
while (true)
{
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
fputc('1', fr);
if ((c = fgetc(f2)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
fputc('2', fr);
if ((c = fgetc(f1)) == EOF) break;
fputc(c, fr);
if ((c = fgetc(f2)) == EOF) break;
fputc(c, fr);
fputc('3', fr);
}
2. Создать строку на 10 символов (6 букв + 3 цифры + конец строки), в конце каждого второго прохода вставлять цифры на каждое третье место, выводить строку файл
int c, n, i = 0;
char temp[10];
temp[9] = '\0';
while (true)
{
if ((c = fgetc(f1)) == EOF) break;
temp[(i >> 1) * 3 + (i++ & 1)] = c;
if ((c = fgetc(f1)) == EOF) break;
temp[(i >> 1) * 3 + (i++ & 1)] = c;
if ((c = fgetc(f2)) == EOF) break;
temp[(i >> 1) * 3 + (i++ & 1)] = c;
if (i == 6)
{
temp[2] = '1';
temp[5] = '2';
temp[8] = '3';
fputs(temp, fr);
i = 0;
}
}
if (i > 0)
{
i = (i >> 1) * 3 + (i & 1);
for (int j = 2; j < i; j += 3)
temp[j] = '1' + j / 3;
temp[i] = '\0';
fputs(temp, fr);
}
может
for (int i = 0; i < 100; i+=3) // увеличение i на 3 и так до 100 чтоб через 2 цифру ставить
{
s[i] = chislo; // присвоение каждому 2 символу цифры ну или 3 му.
}
s[99] = 0; // может нужен может нет.
а вот чтоб число было какое попало гугли random.
и последнему может а может и нет.
s[99] = 0; наверно. чтоб кракозябру не показывало.
и как туда добавить записать не знаю к сожалению, надеюсь сам знаешь, конечно если я норм ответил.
for (int i = 0; i < 100; i+=3) // увеличение i на 3 и так до 100 чтоб через 2 цифру ставить
{
s[i] = chislo; // присвоение каждому 2 символу цифры ну или 3 му.
}
s[99] = 0; // может нужен может нет.
а вот чтоб число было какое попало гугли random.
и последнему может а может и нет.
s[99] = 0; наверно. чтоб кракозябру не показывало.
и как туда добавить записать не знаю к сожалению, надеюсь сам знаешь, конечно если я норм ответил.
***михаил ***
И вамспасибо за ответ !
Похожие вопросы
- Помогите, лёгкий код C++
- Как сделать проверку на букв или цифру в c++
- Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
- Методология понимания массива объектно-ориентированного кода из 40 файлов?
- дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке
- Для чего служит код C++? Или какие коды должен знать уверенный программист.
- Некорректно работает код. (C#)
- Borland C. Чтение файла с помощью прерываний
- помогите закончить код C++
- heloword не запускается!? вопрос внутри!и код C+ builder! программа на С!