Načtení a uložení textu do souboru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načtení a uložení textu do souboru – C / C++ – Fórum – Programujte.comNačtení a uložení textu do souboru – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
avalagne0
Newbie
17. 12. 2011   #1
-
0
-

Ahoj,

nemůžu přijít na chybu v programu, který se snažím dát dohromady... 

Funkce, co by to mělo dělat: načíst text, uložit do souboru, ze souboru přečíst, převést malá písmena z původního souboru na velká do nového souboru a ostatní znaky ponechat.

Přikládám zdrojový kód... Problémem je, že mě to vypíše nějaký sluníčka na obrazovku a v novém souboru obdélníky...

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

int main()
{
	char text[100], znak;
	FILE *fMala, *fVelka;

	printf("Zadejte text do delky 100 pismen: ");
	gets(text);
	fMala = fopen("data.txt", "w");
	fputs(text, fMala);
	fclose(fMala);
	printf("\nNyni se podivejte do slozky se souborem data.txt\n");
	fMala = fopen("data.txt", "r");
	fVelka = fopen("VELKE.txt", "w");

	while(znak = fgetc(fMala) != EOF)
	{
		if((znak >= 'a') && (znak <= 'z'))
		{
			znak -= 32;
			putchar(znak);
			fputc(znak, fVelka);
		}
		else
		{
			putchar(znak);
			fputc(znak, fVelka);
		}
	}
	
	fclose(fMala);
	fclose(fVelka);
	printf("\n");

	return 0;
}

Děkuji za rady!

Nahlásit jako SPAM
IP: 83.208.55.–
Řešení
zlz
~ Anonymní uživatel
634 příspěvků
17. 12. 2011   #2
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

!= má vyšší prioritu než = 

while ((znak = fgetc(fMala)) != EOF)

A když se kód při splnění a nesplnění podmínky liší jen v jednom příkazu, tak stačí podmínit ten jeden příkaz ;)

Nahlásit jako SPAM
IP: 213.211.51.–
avalagne0
Newbie
17. 12. 2011   #3
-
0
-

#2 zlz
Hm, co dokáže priorita nadělat    Děkuji, takovou chybu jsem vůbec nehledal...  

Jen nevím, co jsi myslel tou druhou větou?

Nahlásit jako SPAM
IP: 83.208.55.–
zlz
~ Anonymní uživatel
634 příspěvků
17. 12. 2011   #4
-
0
-

Tohle

while ((znak = fgetc(fMala)) != EOF)
{
	if((znak >= 'a') && (znak <= 'z'))
	{
		znak -= 32;
	}
	putchar(znak);
	fputc(znak, fVelka);
}
Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 120 hostů

Moderátoři diskuze

 

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