Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
Moderators:
Super-Moderators, WebDev Moderators
| Αποστολέας | Μήνυμα |
MamRa
Μέλος από: 06 Δεκ 2009 Μηνύματα: 29
|
Στις: 08 Ιαν 2012 17: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[i] > max)/*evresh megaliterou arithmou kai h thesi tou panw sth grammi*/
{
max = tmp[i];
maxIndex = i;
}
κάτι γίνεται στην fscanf στις δυο τελευταίες μεταβλητές &t1[20], &t1[21] όπου είναι οι θέσεις απο τις δύο στήλες που είναι δεκαδικοι.
όταν τους αλλάζω στο αρχείο και τους κάνω ακέραιους και τουσ δηλώνω σαν int δουλεύουν όλα μια χαρα.Δε ξερω τι άλλο να κάνω!!!!!
|
|
|
|
dva_dev
Script Master  Μέλος από: 16 Σεπ 2005 Μηνύματα: 256+
|
|
|
|
MamRa
Μέλος από: 06 Δεκ 2009 Μηνύματα: 29
|
Στις: 09 Ιαν 2012 00:07 Θέμα:
|
|
|
| dva_dev ανέφερε: | | μήπως θέλεις να πεις fscanf(fp,...,&tmp[19],&t1[0], &t1[1]) ? |
το δοκίμασα τιποτα καπως αλλιως πρεπει να γίνει.....
|
|
|
|
GReaper
Μέλος από: 11 Δεκ 2010 Μηνύματα: 48
|
Στις: 09 Ιαν 2012 11:53 Θέμα:
Re: Πρόβλημα με διάβασμα αρχείου |
|
|
| MamRa ανέφερε: | | όταν τους αλλάζω στο αρχείο και τους κάνω ακέραιους και τουσ δηλώνω σαν int δουλεύουν όλα μια χαρα. |
Όταν λες "%f" στην scanf, περιμένει float. Κάντο "%lf"
|
|
|
|
|
Τώρα είναι 21 Μαη 2013 12:04 | All times are UTC + 3 (DST in action)
|