Přiřazení do char - lvalue expected – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přiřazení do char - lvalue expected – C / C++ – Fórum – Programujte.comPřiřazení do char - lvalue expected – C / C++ – Fórum – Programujte.com

 

tap9701
~ Anonymní uživatel
17 příspěvků
5. 8. 2011   #1
-
0
-

   

cmd = "tcc\\tcc.exe Development\\" + fn + ".c -o Development\\" + fn + ".exe";

TinyCC mi háže

lvalue expected

Co to znamená? Kde je problém? Jak to opravit?

Nahlásit jako SPAM
IP: 88.102.1.–
tap9701
~ Anonymní uživatel
17 příspěvků
5. 8. 2011   #2
-
0
-

celý zdroj:

#include <stdio.h>

int main (){
	char fn[10], cmd[100], c, d;
	printf("Current Directory: ");
	system("cd");
	getch();
	printf("\nQ pro ukončení: ");
	if((c = getchar()) == 'q' || c == 'Q')
		return 0;
	while (d!='q' || d!='Q'){
		printf("\n\nFilename: ");
		scanf("%10s", fn);
		cmd = "tcc\\tcc.exe Development\\" + fn + ".c -o Development\\" + fn + ".exe";
		system(cmd);
		getch();
		printf("\nQ pro ukončení: ");
		d = getchar();
		}
	}
Nahlásit jako SPAM
IP: 88.102.1.–
liborb
~ Redaktor
+18
Guru
5. 8. 2011   #3
-
0
-

"Sčítat" řetězce v C nelze. Použij sprinf nebo strcpy/strcat.

Nahlásit jako SPAM
IP: 78.80.52.–
yaqwsx+9
Posthunter
5. 8. 2011   #4
-
0
-

Anebo přejít z C na C++ (pokud je to možné) a použít třídu string, která má operátor "+" pro řetězce implementován a celkově práce s ní je pohodlnější než s char řetězci...

Nahlásit jako SPAM
IP: 85.160.90.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
tap97010
Newbie
9. 8. 2011   #5
-
0
-

thx za radu.

Když už to fungovalo (trochu jiná verze, ale fungovala cca stejně), tak jsem jí chtěl upgradovat:

#include <stdio.h>

int main()
	{
	char fn[13];
	char string[100];
	char cd[2];
	char dir[100];
	char exit;
		while(cd!='N' || cd!='n') 
			{
			printf("Current directory: ");
			system("cd");
			getch();
			printf("/nDo you want to change directory? [Y/N] ");
			scanf("%1s", &cd);
			switch (cd[0])
				{
				case 'Y':
				case 'y':
					printf("Insert address. Absolute or relative: ");
					scanf("%s", &dir");
					sprintf(string, "cd %s", dir);
					break;
				case 'N':
				case 'n':
					break;
				default:
					return 1;			//User's stupid
					break;
				}
			}
		
		while (exit!='y' || exit!='Y')
			{
			string = 'exit';
			printf("Filemane:");
			scanf("%13s", &fn);
			// string = 'tcc\\tcc.exe Development\\'fn'.c -o Development\\'fn'.exe';
			sprintf(string, "tcc\\tcc.exe Development\\%s.c -o Development\\%s.exe", fn, fn);
			system(string);
			getch();
			printf("Do you want to exit? [Y/N] ");
			scanf("%1s", &exit);
			}
		return 0;
	}

a nastal problém: na řádku 23 (

sprintf(string, "cd %s", dir);

) mi kompilátor háže:

',' expected

nechápu problém, protože mi nourmálně fungovalo

sprintf(string, "tcc\\tcc.exe Development\\%s.c -o Development\\%s.exe", fn, fn);

na ř. 40

Kde to vězí?

Nahlásit jako SPAM
IP: 91.219.244.–
liborb
~ Redaktor
+18
Guru
9. 8. 2011   #6
-
0
-

O řádek výše máš navíc uvozovku, místo:

scanf("%s", &dir");

má být jen:

scanf("%s", &dir);
Nahlásit jako SPAM
IP: 78.80.52.–
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, 72 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ý