1

Тема: Вивід і ввід через файли!

Здоров всім!Прошу подивитись тему з іншого форуму!!тут реклами ніякої немає просто не хотілось все копіювати!!
Мені треба було зробити вивід як в бінарному так і в текстовому файлі!Мені один форумчанин написав дві програми:одна виводить в текстовому друга в бінарному!!Проте як мені її зєднати із самою програмою!Якщо компілювати просто ті коди з програмою в одному проекті викидає помилку!!Розкажіть як все разом обєднати!!Буду вдячний!

2

Re: Вивід і ввід через файли!

Представте код.

Білий Лунь

Re: Вивід і ввід через файли!

sardar2222, раз вам вже було навіть лінь скопіювати код, то який з вас програміст ?

4

Re: Вивід і ввід через файли!

По-перше я не програмістом хочу стати!!Це просто доповняльна дисципліна!А коди я не можу добавити мені завжди вибиває помилка тегів!

5 Востаннє редагувалося Ярослав (04.01.2013 14:55:57)

Re: Вивід і ввід через файли!

Для того щоб додати код використовуйте кнопку code. Натисніть на ній лівою клавішою миші, потім не змінюючи розташування курсора натисніть ctrl+v або праву клавішу миші а потім Вставити.
Код необхідно розміщувати в тегах
[ code ] [ /code ]
Пробіли треба прибрати.

Білий Лунь
Подякували: Bartash1

6

Re: Вивід і ввід через файли!

sardar2222 написав:

По-перше я не програмістом хочу стати!!Це просто доповняльна дисципліна!А коди я не можу добавити мені завжди вибиває помилка тегів!

Форум створений для того, щоби наявні у людей проблеми розв'язувалися на форумі, а не поза ним. Думаю, далеко не кожен із форумчан прагне стати програмістом, тому замість робити виключення з правил для окремих "меншин" ефективнішими є рівність та спільні вимоги до всіх учасників.

Якщо ж виникають проблеми зі вставкою коду у повідомленні - можна спокійно спитати, як це зробити, а не робити шуму з півкопіпасти.

I belong to the Dead Generation.

Re: Вивід і ввід через файли!

sardar2222 написав:

По-перше я не програмістом хочу стати!!Це просто доповняльна дисциплінав!

Ну вибачте! У першому повідомленні цього сказано не було :|

8

Re: Вивід і ввід через файли!

#include <stdio.h>
//#include<conio.h>
#define N 25
 
int main(void)
{
    int x, sumd=0 , sumv=0 , i, j[N];
    int negativ = 0;
    
    //clrscr();
    printf("Enter N\n");
    for (i=0; i<N; i++) {
        scanf("%d", &x);
        if (x>=0) {
            j[i] = 0;
            sumd+=x;
        }
        else { 
             sumv+=x;
     
        }
    }
    printf("Suma Dodatnih = %d\n", sumd);
    printf("Suma Vidyemnuh = %d\n", sumv);
        return 0;
}

ось код програми в якій вводяться 25 чисел і вона рахує кількість від'ємних і кількість додатніх!!!

9

Re: Вивід і ввід через файли!

мені потрібно щоб дані вводилися з текстового файлу і виводилися в текстовий файл так само і з бінарним файлом!
ось програма для текстового файлу

#include <stdio.h>
#define SIZE 25
 
int main(void)
{
    int i;
    float NegSum = 0, PosSum = 0, num;
    FILE *in = fopen("input.txt", "r"),
         *out = fopen("output.txt", "w");
    for (i = 0; i < SIZE; i++)
    {
        fscanf(in, "%f", &num);
        if (num > 0)
            PosSum += num;
        else
            if (num < 0)
               NegSum += num;
    }
    fprintf(out, "%f %f", PosSum, NegSum);
    fclose(in);
    fclose(out);
    return 0;
}

а ось для бінарного

#include <stdio.h>
#define SIZE 25
 
int main(void)
{
    int i;
    float NegSum = 0, PosSum = 0, num;
    FILE *in = fopen("input.bin", "rb"),
         *out = fopen("output.bin", "wb");
    for (i = 0; i < SIZE; i++)
    {
        fread(&num, sizeof(float), 1, in);
        if (num > 0)
            PosSum += num;
        else
            if (num < 0)
               NegSum += num;
    }
    fwrite(&PosSum, sizeof(float), 1, out);
    fwrite(&NegSum, sizeof(float), 1, out);
    fclose(in);
    fclose(out);
    return 0;
}
 

питання!!Ці всі коди мають бути в одному проекті разом з кодом самої програми??як мені це все зєднати!!

10

Re: Вивід і ввід через файли!

#include <stdio.h>

#define SIZE 25

void readWriteText(const char *input, const char* output)
{
//Сюди вставляєте код читання-запису текстових файлів
}
void readWriteBin(const char *input, const char* output)
{
//Сюди вставляєте код читання-запису бінарних файлів
}

int main(int argc, char* argv[])
{
    readWriteText("input.txt", "output.txt");
    readWriteBin("input.bin", "output.bin");
    return 0;
}
I belong to the Dead Generation.
Подякували: Ярослав1

11

Re: Вивід і ввід через файли!

як вставляти повністю код????з include і т.д.І куди сам код програми!!в обох файлах??

12

Re: Вивід і ввід через файли!

sardar2222 написав:

як вставляти повністю код????з include і т.д.І куди сам код програми!!в обох файлах??

Просто скопіювати і вставити програмний код, де вказано у коментарях.

I belong to the Dead Generation.

13

Re: Вивід і ввід через файли!

а код самої програми куди????

14

Re: Вивід і ввід через файли!

я скопіював, вставив програмні коди де потрібно і нічого не вийшло, окрім помилок!!!

15 Востаннє редагувалося Адріян Ігорович (07.01.2013 13:33:43)

Re: Вивід і ввід через файли!

Типу щось таке. Правда дещо можна було винести за функції.
P.S: на форматування не дивіться, це все Ctrl+C - Ctrl+V   

#include <stdio.h>
     
    #define SIZE 25
     
    void readWriteText(const char *input, const char* output)
    {
     int i;
float NegSum = 0, PosSum = 0, num;
FILE *in = fopen("input.txt", "r"),
*out = fopen("output.txt", "w");
for (i = 0; i < SIZE; i++)
{
fscanf(in, "%f", &num);
if (num > 0)
PosSum += num;
else
if (num < 0)
NegSum += num;
}
fprintf(out, "%f %f", PosSum, NegSum);
fclose(in);
fclose(out);
return 0;
    }
    void readWriteBin(const char *input, const char* output)
    {
int i;
float NegSum = 0, PosSum = 0, num;
FILE *in = fopen("input.bin", "rb"),
*out = fopen("output.bin", "wb");
for (i = 0; i < SIZE; i++)
{
fread(&num, sizeof(float), 1, in);
if (num > 0)
PosSum += num;
else
if (num < 0)
NegSum += num;
}
fwrite(&PosSum, sizeof(float), 1, out);
fwrite(&NegSum, sizeof(float), 1, out);
fclose(in);
fclose(out);
return 0;
    }
     
    int main(int argc, char* argv[])
    {
    readWriteText("input.txt", "output.txt");
    readWriteBin("input.bin", "output.bin");
    return 0;
    }
Подякували: Bartash1

16

Re: Вивід і ввід через файли!

не підкажете що за помилка 
Debug assertion failed!
Program ....
File:fscanf.c
Line 52
Expression:(stream!=NULL)

17

Re: Вивід і ввід через файли!

в тебе працює ця програма?

18

Re: Вивід і ввід через файли!

файли input,output їх потрібно створити і вказати в коді іх розташування??влни повинні бути в проекті??в папці з проектом?

19

Re: Вивід і ввід через файли!

sardar2222 написав:

файли input,output їх потрібно створити і вказати в коді іх розташування??влни повинні бути в проекті??в папці з проектом?

У вас впала програма на етапі запуску, наскільки я зрозумів.
Ви файли input.txt, input.bin відкриваєте лише на читання. Якщо файлів не існує, покажчик на файл нульовий. Тут програма і здобуває тріумфальні граблі.

Варто замінити відкриття з "r" на "r+", "rb" на "rb+", або ж робити перевірку на нуль покажчиків на файл безпосередньо у функціях.

I belong to the Dead Generation.

20

Re: Вивід і ввід через файли!

Дякую всім!!!Справа була в тому, що програма видавала помилку але створювала в папці з проектом файл output.txt. Файл input.txt не було і я вирішив створити його і в ніс в нього дані тобто 25 чисел підряд, після цього запустив програму виконав її і як виявилось в файлі output.txt правильна відповідь. І ще питання як мені вводити в бінарний файл дані і коли я дивлюсь в бінарний файл то там невідомі знаки тобто неможливо впевнетися чи правильно в бінарному