[英]How can I read specific lines in a file?
在一個文件中,寫着這樣的詞:
Name
Surname
Age
Job
Telephone
James
Cooper
26
engineer
6545654565
Bob
Allen
22
doctor
5656555655
....
我想從這些行打印特定部分(僅用於示例名稱)。 我已經嘗試過這段代碼,但我只能打印我想要的 1 行。 (我只打印 James,但我想打印所有名字:James、Bob、...)。
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int lineNumber;
static const char filename[] = "hayat.txt";
for(lineNumber=5;lineNumber<20;lineNumber+5);
FILE *file = fopen(filename, "r");
int count = 0;
if ( file != NULL )
{
char line[256];
while (fgets(line, sizeof line, file) != NULL)
{
if (count == lineNumber)
{
printf("\n %s ", line);
fclose(file);
return 0;
}
else
{
count++;
}
}
fclose(file);
}
return 0;
}
我怎樣才能做到這一點?
我試圖讓它編寫與問題中的代碼最相似的代碼。 這可能不是最佳解決方案,但應該可以。
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#define TAMLINE 256
int main(void){
int lineNumber, count=0;
static const char filename[] = "hayat.txt";
FILE *file = fopen(filename, "r");
if ( file != NULL ){
char line[TAMLINE];
/* //use this if you want to skip first 5 lines
for(int i=0;i<5;i++){
fgets(line, TAMLINE, file)
}
*/
while (fgets(line, TAMLINE, file) != NULL){
count ++;
//only print 1st line, 6th line 11 line.. ie lines with names
if (count%5 == 1){
printf("%s", line);
}
}
fclose(file);
}
return 0;
}
您只打印一次,因為這正是告訴程序要做的事情
if linenumber == count ... print
else count++
將始終只打印一行。
至於如何打印差異類別,您要么找到相似之處(例如某些對象,所有名稱都以大寫字母開頭,沒有數字),要么在數組中指定它們 - 這可能不是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.