Mam za zadanie napisać program, który będzie składał się z funkcji wczytującej dane z pliku csv i z funkcji wpisującej dane do pliku csv.
Funkcja która ma zapisywać dane do pliku csv działa. Ale wpisuje dane w jedną kolumne. A ma wpisywać dane w dwie kolumny. Nie wiem jak to zrobić.
Natomiast funkcja która pobiera dane z pliku i zapisuje je do tablicy coś nie działa.
Proszę o wyrozumiałość. Dopiero zaczynam ;)
#include <iostream>
#include <cstring>
using namespace std;
void WyswietlMenu()
{
cout << "MENU" << endl;
cout << "1-Zapisz do tablicy" << endl;
cout << "2-Zapisz do pliku" << endl;
cout << "x-Wyjscie" << endl;
}
void ReadFile(char *FileName)
{
int liczba1;
float liczba2;
int idx = 0;
int tab1[100];
float tab2[100];
FILE *plik=fopen(FileName, "r+t");
while(fscanf(plik,"%d,%f", &liczba1, &liczba2)>0)
{
tab1[idx]=liczba1;
tab2[idx]=liczba2;
idx++;
}
fclose(plik);
for(int i =0; i<100; i++)
{
printf("%d ", tab1[i]);
printf("%f", tab2[i]);
}
}
void Export2File(char *FileName)
{
float tab1[5];
float tab2[5];
float liczba;
printf("Podaj 5 liczb: ");
for (int i=0; i<5; i++)
{
scanf("%f", &liczba);
tab1[i]=liczba;
tab2[i]=liczba*liczba;
}
for(int i=0; i<5; i++)
printf("%.2f ", tab1[i]);
printf("\n");
for(int i=0; i<5; i++)
printf("%.2f ", tab2[i]);
printf("\n");
FILE *plik=fopen(FileName, "w+t");
for(int i=0; i<5; i++)
fprintf(plik, "%f\n, %f\n", tab1[i], tab2[i]);
fclose(plik);
}
int main()
{
char opcja='a';
char *plik = "xxx.csv";
while(1)
{
WyswietlMenu();
cin>>opcja;
switch(opcja)
{
case '1': ReadFile(plik); break;
case '2': Export2File(plik); break;
case 'x':
case 'X': return 0;
}
}
}