Файл: Преобразовать файл, удалив в каждой его строке первый символ - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу понять, через какой цикл нужно работать. Мне нужно организовать текстовый файл, состоящий из N строк, потом преобразовать файл, удалив в каждой его строке первый символ, а изменения вывести в другой файл. Вот начало проги, а дальше я не понимаю...:
#include <stdio.h>
#include <conio.h>
int main(void){
    char ch; FILE *f_in, *f_out;
    char str[] = "D:\\laba.txt"; // Файл записи
    char str2[] = "D:\\laba2.txt";// Файл перезаписи
    if ((f_in = fopen(str, "w")) == NULL){
    printf("\n\t The file could not be opened.\n ");
    printf("\n Press any key: ");
    getch(); return 0;}
    printf("\n Enter the characters by pressing Enter and exit point:\n ");
    while ((ch = getchar()) != '.')
{ printf(" "); fputc(ch, f_in);}
fclose(f_in);
 
    if ((f_in = fopen(str, "r")) == NULL){
    printf("\n\t The file could not be opened.\n ");
    printf("\n Press any key: ");
    getch(); return 0; }
 
if ((f_out = fopen(str2, "w")) == NULL){
    printf("\n\t The file could not be opened.\n ");
    printf("\n Press any key: ");
    getch(); return 0;}
 
while((ch = getc(f_in)) != EOF) putc(ch, f_out);
fclose(f_in);
fclose(f_out);
 
printf("\n\n Result of record look in file %s\n", str);
printf(" Result of rewriting look in file %s\n", str2);
 
printf("\n Press any key: ");
getch();
return 0; 
}

Решение задачи: «Файл: Преобразовать файл, удалив в каждой его строке первый символ»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main()
{
    FILE *fin, *fout;
    char s1[80], s2[80];
    int N, x = 1, i, y;
    printf("Input number strings:");
    scanf("  %i", &N);
    y = N;
    fflush(stdin);
    fin = fopen("input.txt", "w");
    while(N > 0){
        printf("Enter string %d:\n", x);
        fgets(s1, 80, stdin);
        fprintf(fin, "%s", s1);
        --N;
        x++;
    }
    fout = fopen("output.txt", "w");
    fclose(fin);
    fin = fopen("input.txt", "r");
    for(i = 0; i < y; i++){
        fgets(s1, 80, fin);
        strcpy(s2, s1 + 1);
        fprintf(fout, "%s", s2);
    }
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы