Anonymní profil Matěj – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Matěj – Programujte.comAnonymní profil Matěj – Programujte.com

 

Příspěvky odeslané z IP adresy 89.103.141.–

Matěj
C / C++ › Načtení dat ze souboru pomoc…
3. 11. 2013   #183160

#5 z
No jo, já jsem nenastavil ukazatel na buffer zase na začátek při čtení toho zbytku. Děkuju moc.

Matěj
C / C++ › Načtení dat ze souboru pomoc…
2. 11. 2013   #183134

#2 z
To je zavření souboru pokud není chyba při otevírání, pokud se nemýlím.

Matěj
C / C++ › Načtení dat ze souboru pomoc…
1. 11. 2013   #183106

Ahoj, napsal jsem program pro načtení dat ze souboru pomocí dynamického pole jako "bufferu", ale bohužel mi hází Debug Assertion chybu

File: f:\dd\vctools\crt_bld\self_x86\crt\src\close.c
Line: 48

Expression: (_osfile(fh) & FOPEN)

Byl bych vděčný za odhalení, co se za hláškou skrývá, vypadá to na chybu na heapu, takže špatná práce s pointrem?

Děkuji

#include <stdio.h>
#include <stdlib.h>

#define VELIKOST 1024
#define VELIKOSTHLEDANI 2

int main(){
	FILE *fr;
	int i,j,k,velikost,rozdil;
	int prubeh = 0;
	char *bufferstart;
	char *buff;
	char hledam[VELIKOSTHLEDANI];
	int vysledky[VELIKOSTHLEDANI];
	vysledky[0] = 0;
	vysledky[1] = 0;
	hledam[0] = 'a';
	hledam[1] = 'x';

	bufferstart = (char *)malloc(VELIKOST);
	buff = bufferstart;
	if(buff != NULL){
	fr = fopen("File.txt","r+b");
		if(fr != NULL){
			fseek(fr,0,SEEK_END);
			velikost = ftell(fr);
			fseek(fr,0,SEEK_SET);
			prubeh = velikost/VELIKOST;
			for(i = 0; i < prubeh;i++){
				buff = bufferstart;
				fread((void *)buff,sizeof(char),VELIKOST,fr);
					for(j = 0; j < VELIKOST; j++){
						for(k =0;k<VELIKOSTHLEDANIk++){
							if(*buff == hledam[k]){
								vysledky[k]++;
							}
						}
						buff++;
					}
			}
			rozdil = velikost % VELIKOST;
			fread((void*)buff,1,rozdil,fr);
			for(j = 0; j < rozdil; j++){
				for(k = 0;k<VELIKOSTHLEDANI;k++){
					if(*buff == hledam[k]){
						vysledky[k]++;
					}
				}
			buff++;
			}
		fclose(fr);
		}
	}
	printf("%c je zastoupeno poctem %d \n %c je zastoupeno poctem %d",hledam[0],vysledky[0],hledam[1],vysledky[1]);
	getchar();
	return 0;
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý