Πρόβλημα με διάβασμα αρχείου

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα με διάβασμα αρχείου

Δημοσίευση από MamRa » 08 Ιαν 2012 16:35

Καλησπέρα σε όλους
προσπαθώ να διαβάσω ένα αρχείο και χω πρόβλημα στους δεκαδικους αριθμούς μαλλον κάτι παίζει στη δήλωση
θέλω να διαβάσω την παρακάτω γραμμή προσπερνώντας τις 22 πρώτες γραμμές.

1M -1-2-3-3-1-1-2-3-2 2 2-2 5 0-3 -2-1-2-1 3 0 0 00 0 0 0000 0 0 62 0 0 0 0 0 0 3 1 0.30 1.5

το αρχείο εχει πολλές γραμμές αυτη είναι η πρώτη όπως βλέπετε οι δυο τελευταιες γραμμες είναι δεκαδικοί.
ο κωδικας που έγραψα ειναι ο εξης:

#include <stdio.h>
#define COLS 44 /*dilwsi pinaka*/
#define ROWS 500

int main(void)
{
int i, max, maxIndex, resCurrentIndex, tmp[COLS];/* dilwsi metavlitvn*/
char res[ROWS+1] = {0};
char t[1]; /* tmp */
double t1[2];
FILE *fp,*ifp, *ofp;
fp = fopen(filename, mode);/* anoigma kai diavasma tou arxeiou*/
if (fp == NULL) {
fprintf(stderr, "de mporei na anoixi to arxeio data.txt!\n");
exit(1);

while (fscanf(fp, "%d %s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %f %f ",
tmp,t,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,tmp,&tmp[0],&tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5], &tmp[6], &tmp[7], &tmp[8], &tmp[9], &tmp[10], &tmp[11], &tmp[12], &tmp[13], &tmp[14] ,&tmp[15], &tmp[16], &tmp[17], &tmp[18], &tmp[19], &t1[20], &t1[21]) == COLS)

{
max = tmp[0];
maxIndex =0;
for (i=1; i< COLS-22; i++)
{
if (tmp > max)/*evresh megaliterou arithmou kai h thesi tou panw sth grammi*/
{
max = tmp;
maxIndex = i;
}

κάτι γίνεται στην fscanf στις δυο τελευταίες μεταβλητές &t1[20], &t1[21] όπου είναι οι θέσεις απο τις δύο στήλες που είναι δεκαδικοι.

όταν τους αλλάζω στο αρχείο και τους κάνω ακέραιους και τουσ δηλώνω σαν int δουλεύουν όλα μια χαρα.Δε ξερω τι άλλο να κάνω!!!!!

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πρόβλημα με διάβασμα αρχείου

Δημοσίευση από dva_dev » 08 Ιαν 2012 22:23

μήπως θέλεις να πεις fscanf(fp,...,&tmp[19],&t1[0], &t1[1]) ?

MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα με διάβασμα αρχείου

Δημοσίευση από MamRa » 08 Ιαν 2012 23:07

dva_dev έγραψε:μήπως θέλεις να πεις fscanf(fp,...,&tmp[19],&t1[0], &t1[1]) ?
το δοκίμασα τιποτα καπως αλλιως πρεπει να γίνει.....

GReaper
Δημοσιεύσεις: 48
Εγγραφή: 11 Δεκ 2010 21:47
Επικοινωνία:

Πρόβλημα με διάβασμα αρχείου

Δημοσίευση από GReaper » 09 Ιαν 2012 10:53

MamRa έγραψε:όταν τους αλλάζω στο αρχείο και τους κάνω ακέραιους και τουσ δηλώνω σαν int δουλεύουν όλα μια χαρα.
Όταν λες "%f" στην scanf, περιμένει float. Κάντο "%lf"

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες