Aşağıdaki kod bir karakter anda bir metin dosyasını okur ve Stdout'a yazdırmak:ara
#include <stdio.h>
int main()
{
char file_to_open[] = "text_file.txt", ch;
FILE *file_ptr;
if((file_ptr = fopen(file_to_open, "r")) != NULL)
{
while((ch = fgetc(file_ptr)) != EOF)
{
putchar(ch);
}
}
else
{
printf("Could not open %s\n", file_to_open);
return 1;
}
return(0);
}
Ama bunun yerine baskı stdout'a [putchar (ch)] İstiyorum Başka bir metin dosyasında sağlanan belirli dizeler için dosyayı arayın örn. strings.txt ve çıkış maçı ile hat
text_file.txt
out.txt için:
1993 - 1999 Pentium 1997 - 1999 Pentium II 1999 - 2003 Pentium III 1998 - 2009 Xeon 2006 - 2009 Intel Core 2
strings.txt
: text_file.txt
üç birinci satır eşleşir Bu durumda
Nehalem AMD Athlon Pentium
. Ben C dosya işlemleri ile ilgili bazı araştırmalar yaptım ve o zaman ben fgetc
[benim kodunda yaptığım gibi], fgets
ile bir satır ve fread
ile bir satır ile bir karakter okuyabilir, ama sanırım hiçbir kelime gibi görünüyor Benim durumumda mükemmel olur mu?
neden bu programı yazıyoruz ?! Bunu yapmak için grep/awk/sed kullanın. –
Hayır, Tim. Etiketler aramak içindir. Kimse bunu araştırmayacak. – GManNickG
Evet, saniyeler içinde çözebileceğim standart Unix araçları ile biliyorum, ancak bu C dosyası IO'nun daha iyi anlaşılmasını sağlamaktır. –