Problema con File e Stringhe

di il
2 risposte

Problema con File e Stringhe

Salve sono nuovo del forum e del C++...
Sto scrivendo un programma che leggendo un file (che contiene circa 8 numeri per riga), ne estragga una linea alla volta per poi mettere numero per numero in un array.
Ho provato a trasferire una linea dentro una variabile ma quando compilo mi dice che non posso mettere una variabile char* in una int o char.
la mia domanda è: esiste un modo per trasferire una linea di soli numeri da un file dentro una variabile???
#include <stdio.h>

int main() {
    char line[100];

    int a;
    FILE *fp;
    if (!(fp=fopen("file.txt","r"))) {
        printf("Errore in apertura");
        return 1;
    }

    while (!feof(fp)){
        fgets(line, 100, fp); //qui viene messa la riga del file dentro "line"
        a=line; //Parte da correggere, impossibile spostare char* in int
        printf("%s", line); //la riga prelevata viene stampata a schermo
    }
}
questo è quello che provo a fare...
P.S per il titolo non sono riuscito a trovare altro

2 Risposte

  • Re: Problema con File e Stringhe

    Se line contiene numeri in forma intelleggibile (10 20 30 etc...) puoi usare sscanf.
  • Re: Problema con File e Stringhe

    Sscanf() non sono riuscito ad usarlo... però in compenso sono riuscito a far funzionare il programma per quello che devo fare
    #include <stdio.h>
    #include <iostream>
    #include <fstream>
    using namespace std;
    int main() {
        char a[8];
        int b[8],i=0;
        FILE *fp;
        if (!(fp=fopen("file.txt","r"))) {
            printf("Errore in apertura");
            return 0;
        }
        	
            fgets(a, 8, fp);//prende la linea e la sposta in a
            cout<<"a = "<<a<<endl;
            while(i!=8){ //viene visualizzata ogni numero di cui è composta la linea
            	b[i]=a[i]-48;
            	if(b[i]>=0&&b[i]<=8){
            		cout<<"b["<<i<<"] = "<<b[i]<<endl; 
            		i++;
           		}else{
           			i++;
           		}
            		
            }
            
            
       return 0;
    }

    grazie comunque della risposta!
Devi accedere o registrarti per scrivere nel forum
2 risposte