Fprintf отказывается выводить текст больше чем один раз из цикла - C (СИ)

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

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

Здравствуйте , столкнулся с проблемой в задаче с вводом в текстовый документ информации. Проблема в том, что программа вылетает, но, если мы используем вывод конечных данных только один раз, а не два(case 0, case1) то никаких проблем нет. Методом printf до, printf после, я вычислил что даже когда код не доходит до второго вывода в файл, программа все равно вылетает, само использование fprintf 2 раза и есть причиной вылета, помогите пожалуйста.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    int m[6];
    FILE * file1;
    file1 = fopen("d://de//file1.txt", "wt");
    if( (file1=fopen("d://de//file1.txt","wt")) == 0 ) 
    printf("error!");
    fprintf(file1, "Name    Monday    Tuesday    Wednesday    Thurstday    Friday    All    Best Count\n");
    char CName;
    for (int i = 0; i < 2; i++) {
        switch (i) {
            case 0: {
                CName = "Ivanov";
                for (int j= 0; j<4; j++) {
                    m[j] = rand()%100;
                    m[5] +=m[j];
                    if (j >= 1) {
                        if (m[j] > m[j-1])
                        m[6] = m[j];
                    }
                }
                break; //case0
            }
            case 1: {
                CName = "Sidorov";
                for (int j= 0; j<4; j++) {
                    m[j] = rand()%100;
                    m[5] +=m[j];
                    if (j >= 1) {
                        if (m[j] > m[j-1])
                        m[6] = m[j];
                    }
                }
                break; //case0
            }

        }
        printf("complated");
        fprintf(file1, "%s  %i   %i    %i      %i      %i     %i   %i\n", CName, m[0], m[1], m[2], m[3], m[4], m[5], m[6]);
    }
    return 0;
}
Отмена. Решил.

Решение задачи: «Fprintf отказывается выводить текст больше чем один раз из цикла»

textual
Листинг программы
file = fopen(argv[1], "wt");
    if (file == NULL) {
        fprintf(stderr, "can't open file: %s\n", argv[1]); 
        return 1;

Объяснение кода листинга программы

  1. file = fopen(argv[1],wt); - открывает файл для записи
  2. Если файл не открылся, то выполняется блок кода:
  3. fprintf(stderr,can't open file: %s\n, argv[1]); - выводит сообщение об ошибке в файл stderr
  4. return 1; - завершает работу программы с кодом ошибки 1 В данном коде используется функция fprintf, которая записывает строку в файл. Однако, в данном случае, она выводит сообщение об ошибке в файл stderr, а не в открытый файл.

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

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