Titlul: Citire cu cstdio Scris de: Mihailescu Vlad Tiberiu din Septembrie 16, 2014, 14:15:50 Salut, am observat ca anumite probleme necesita citire din fisier cu cstdio . De obicei folosesc fstream si as vrea sa-mi spuna cineva cum as putea scrie asta:
ifstream f("d.in"); ofstream g("d.out"); . . f>>n>>m; g<<n<<m; cu cstdio, folosind structura cu freopen Si as dori ca sa-mi explice cineva care este diferenta dintre scrierea aceasta: FILE *f,*g; . . f=fopen("cod5.in","r"); g=fopen("cod5.out","w"); fscanf(f,"%d",&n); .. fprintf(g,"%d",n); si scrierea cu freopen, deoarece am vazut recent intr-un topic pe infoarena ca ar exista diferente. Si ca sa nu mai deschid alt topic: #include <cstdio> using namespace std; FILE *f,*g; int n,i,j,a[100][100]; char x; int main() { f=fopen("cod5.in","r"); g=fopen("cod5.out","w"); fscanf(f,"%d",&n); for(i=1;i<=n;i++) for(j=1;j<=n;j++) {fscanf(f,"%c",&x); a[j]=x-'0';} for(i=1;i<=n;i++) {for(j=1;j<=n;j++) {fprintf(g,"%d",a]i][j]);fprintf(g," ");} fprintf(g,"\n");} return 0; } Daca am ca date de intrare 5 00000 01000 10100 01000 00000 imi afisaza: -38 0 0 0 0 0 -38 0 1 0 0 0 -38 1 0 1 0 0 -38 0 1 0 0 0 -38 Am observat ca problema este de la fscanf(f,"%c",&x); dar nu stiu sa corectez Titlul: Răspuns: Citire cu cstdio Scris de: George Marcus din Septembrie 16, 2014, 15:45:53 S-a mai raspuns la aceasta intrebare.
Cod: freopen("d.in", "r", stdin); Legat de doua intrebare, greseala e ca citesti si caracterul '\n' (sfarsit de linie) si trebuie sa te asiguri ca sari peste el. De exemplu fscanf(f,"%d\n",&n); la inceput si citesti un caracter in plus la sfarsitul fiecarei linii. |