Mała pomoc w utworzeniu funkcji

0

Witam. Mam za zadanie utworzenie funkcji w moim programie (zadanie na studiach). Generalnie programowanie to jest dla mnie czarna magia.

Treść zadania :
Letter filter
Write a program which filters from an input file words starting with a given
letter. The words starting with a given letter are copied to the output file. The
name of the input file follows the -i switch, the output file -o, and filtering
symbol -f. Exemplary program call:
program.exe -i input.txt -o output.txt -f a

Kod już mam napisany prawidłowo, tylko że pani profesor zażyczyła sobie abyśmy utworzyli swoją własną funkcje i wywołali ją w int main(). Podpowiedziała mi że mogę skopiować praktycznie wszystko co jest w mainie i wrzucić to do własno utworzonej funkcji. Tylko problem że nie mam zielonego pojecia jak to zrobić.. :( Pomoże ktoś?

Kod programu :

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

int CreateFile();
{
    char litera = argv[6][0];

		FILE * input;
		fopen_s(&input, argv[2], "r");
		if (input == NULL)
		{
			printf("error\n");
			return 0;
		}
		else
		{
			char tab[1000];
			int i = 0;
			FILE*output;
			fopen_s(&output, argv[4], "w");
			if (output == NULL)
			{
				printf("error\n");
				fclose(input);
				return 0;
			}
			while (!feof(input))
			{
				fscanf_s(input, "%s", tab, 1000);
				if (tab[0] == litera)
				{
					fprintf(output, "%s \n", tab);
				}
			}
			fclose(input);
			fclose(output);
		}
}

int main(int argc, char** argv)
{
	if (argc > 6)
	{

	}
	else
	{
		printf("wrong parameters");
	}
	return 0;
}

1

Hmmm chyba chodzi tobie o to jak wywołać taką funkcję. Ano tak:

int main(int argc, char** argv)
{
    if (argc > 6)
    {
       CreateFile();
    }
    else
    {
        printf("wrong parameters");
    }
    return 0;
}

Dwie rzeczy rzucają się w oczy. Pierwsza to wg. konwencji funkcje pisze się z małej litery (chyba ;)). Druga to typ zwracany jest int, ale nic nie zwracasz. Powinieneś mieć raczej void createFile()

EDIT:
Masz błąd w definicji funkcji

int CreateFile();  // <-- tego średnika nie powinno tu być
{
    char litera = argv[6][0];
 
0

Dziękuje bardzo :), uporałem się już z tym problemem :) Temat do zamknięcia, kosza czy co wy tam z nim robicie;p. Dzięki wielki eza pomoc :)

0

Raczej chodziło nie o sztywne pozycje parametrów zaś o ich opcjonalność:
http://stackoverflow.com/questions/13756333/scan-and-determine-arguments-entered-in-command-prompt-having-a-hard-time

1 użytkowników online, w tym zalogowanych: 0, gości: 1