Gå til innhold

Hjelp en C-noob :)


Anbefalte innlegg

Hei, har problemer med en _svært_ enkelt C-program. Bruker IDEen Netbeans til mitt forbruk.

 

Koden:

#include <stdio.h>

int main(int argc, char *argv[])
{
int x;

  // printf("%d\n",argc);
for (x=0; x<argc; x++)
	if (x>0)
		char msg = argv[x];
	printf("Input: %s\n",msg);
return 0;
}

 

Greia er at programmet skal lese inn et argument fra main, så lagre denne i variablen msg og så skrive ut. Ja, vet jeg kan skrive ut args direkte, men det er ikke oppgaven! Skjønner ikke hva som er feil.

Får disse feilmeldingene:

Helloworld.c: In function `main':

Helloworld.c:22: error: parse error before "char"

Helloworld.c:22: warning: initialization makes integer from pointer without a cast

 

takker for hjelp!

Lenke til kommentar
Videoannonse
Annonse

Du mangler endel curly brackets, i tillegg til at du har bommet på strenghåndteringen.

 

Dette kompilerer og kjører ihvertfall:

 

int main(int argc, char *argv[]) {
 int x;

 for (x=0; x<argc; x++) {
if (x>0) {
  char *msg = argv[x];
  printf("Input: %s\n",msg);
}
 }
 return 0;
}

 

Werner

Lenke til kommentar

Du kan forresten omgå if-sjekken ved å la for-løkken starte ved x = 1. I tillegg kan du skrive printf("Input: %s\n", argv[x]) i stedet for å definere en peker som peker til strengen i linja før. Dette er selvsagt en smakssak, men det blir litt unødvendig når du uansett bare bruker argv[x] én gang.

Lenke til kommentar

Trenger litt mer hjelp:

 

char strgetc(char s[], int pos);

int main(int argc, char** argv) {
char a;
int b;
printf("Skriv først et ord, så et tall som angir posisjonen til bokstaven du vil ha. Ordet og tallet skal ha mellomrom mellom seg:\n");
scanf("%s %d", &a, &b);
strgetc(a, b);


return (EXIT_SUCCESS);
}

char strgetc(char s[], int pos){
	//char *ke = "f";
	printf("lolfest");
	//return *ke;
}

 

Skal gjøre noe mer i funksjonen strgetc (skrive ut tegnet som ligger i pos i teksten som angis). Problemet er at programmet nå ikke kjører og skjønner ikke hvorfor. Feilmeldingen jeg får er: test.c:21: warning: passing arg 1 of `strgetc' makes pointer from integer without a cast

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...