Kezdőoldal » Számítástechnika » Programozás » C ben TXT-be valo irás,...

C ben TXT-be valo irás, neirja felul a letezo fajlokat - valami otlet hogyan oldajam meg?

Figyelt kérdés

Raspberry Pi vel futtatok egy C programot, ami elmenti/kiírjaegy txtbe a homersekletet addig amíg ki nem lepek a programbol...


A kiiratas igy lett megoldva:



FILE *file = fopen("./outputs/temperature.txt", "w");

if (file == NULL){ exit(1); }

...

...

fprintf(file, "%f\n",bmp.b_alt);

fflush(file);



A baj ezzel az,hogy mindig felulirja az adatokat,ha ujbol elindul a program. Ezt hogyan lehetne megoldani,hogy keszitsen egy uj fajlt (más nevvel) ? // gondoltam arra,hogy mindig az aktualis ido alapjan letrehozna egy fajlt - ezt hogyan lehetne osszehozni?


2017. márc. 12. 13:50
 1/4 anonim ***** válasza:

Az fopen fájl első paramétere egy string.

Létrehozol egy stringet, ami az alapot tárolja (./outputs/), és ezt strcat-tal összefűzöd egy általad generált stringgel.

Ennek az eredményét adod meg a fopen-ben.

2017. márc. 12. 14:11
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

1. vagyok:

Másik (egyszerűbb) megoldás, w+ paraméterrel fopen-elsz, és akkor a végére írja, és nem felülírja. Csak akkor az olvasást is ahhoz kell igazítani, meg lehet hogy nem árt mellétárolni a dátumot is.

2017. márc. 12. 18:03
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Még mindig 1. vagyok, és hülye :D

A w+ pont hogy felülírja, keress rá inkább az fopen paraméterekre, talán az "a" mód kell neked, de ezt már nem merem biztosra mondani :D

2017. márc. 12. 18:05
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

koszi mar vegre sikerulni latszik...itt a kod ha kene valakinek majd...sok feles dolog van benne, probalkozasok stb...


de vegulis az mukodes:

kell hogy legyen egy output subfolder a program ahol fut.

es itt mindig letrehoz egy ido szerinti mappat,majd ide menti majd a dolgokat(txt-t)

#include <stdio.h>

#include <stdint.h>

#include <stdlib.h>

#include <string.h>

#include <signal.h>

#include <getopt.h>

#include <errno.h>



//cas

#include <time.h>


#include <sys/stat.h>

#include <sys/types.h>



int i = 0;

int main(int argc, char **argv)

{


char filename[40];



// pre cas

clock_t start_t, end_t, total_t;

time_t start, end,mytime;


//pre vypis cas

time_t current_time;

struct tm * time_info;

char timeString[9]; //space for "HH:MM:SS\0"



double diff_t;



char s1[50],s2[40]= "test.txt";



start = time(NULL);



//get current time

time(¤t_time);

time_info = localtime(¤t_time);

strftime(timeString, sizeof(timeString), "%H:%M:%S",time_info);


// time = gmtime(&now);


//strftime(filename, sizeof(filename),

"output/SA_TEST_%Y-%m-%d_%H:%M:%S", time);


strftime(filename, sizeof(filename), "./output/%H-%M-%S/", time_info);

mkdir(filename, 0777);


// strftime(filename, sizeof(filename),

"./output/log/SA_TEST_%Y.txt", time_info);


//FILE *file = fopen("output/testcas.txt", "w");


printf("filename %s\n", filename );



strcat(filename,s2);

FILE *file = fopen(filename, "w");


printf("filename %s\n", filename );

printf("s1 %s\n", s2 );


//FILE *file = fopen(filename, "w");

if (file == NULL){ exit(1); }



// fprintf(file, "%s \n",timeString);

fprintf(file, "%d \n",10);

fflush(file);



}

2017. márc. 12. 18:16

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!