PDA

View Full Version : مبتدی: گرفتن خط بعدی در تکست



raminlich
چهارشنبه 02 اردیبهشت 1394, 17:00 عصر
سلام

فرض کنید یک فایل تکست داریم با این محتوی

orange

blue

red

حالا من می خوام هر بار که بش دستور دادم خطه بعدی رو بخونه بعد به من نشون بده. به عنوان مثال وقتی برنامه استارت می شه orange رو نشون بده بعد که من 1 زدم blue رو نشون بده

توجه: من می دونم چطوری با استفاده از تابع EOF() و حلقه وایل کل خط ها رو یه جا بخونم(یه جا نمی خونه دونه دونه تا آخر میره :لبخند:)


ممنون میشم کمکم کنید

rahnema1
چهارشنبه 02 اردیبهشت 1394, 20:33 عصر
سلام
این طور که از سوال متوجه شدم احتمالا چیزی شبیه این لازم دارید

#include <iostream>
#include <fstream>
void dastoor(std::ifstream& myfile)
{
if(!myfile.eof())
{
std::string str;
std::getline(myfile, str);
std::cout << str << std::endl;
}
}
int main()
{
std::ifstream myfile("myfile.txt");
dastoor(myfile);
dastoor(myfile);
dastoor(myfile);
myfile.close();
}

*******
یک شنبه 06 اردیبهشت 1394, 17:10 عصر
/*first step*/
#include <stdio.h>

int main()
{
char colors[0x3][0x7]={"orange", "blue", "red"};

int i; FILE *f=fopen ("C:\\File(6008).txt", "w");
for (i=0x0; i<=0x2; ++i)
fprintf (f, "%s\n", colors[i]);
fclose (f);

return (0);
}
/*second step*/
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 0x400

int main()
{
int c, i=0x0,
j=0x0; char colors[MAXSIZE][MAXSIZE];

FILE *f=fopen ("C:\\File(6008).txt", "r");
while ( (c=fgetc (f) )!=EOF)
{
if (c!='\n' && c!='\t')
colors[i][j++]=c;
else
++i, j=0x0;
}
fclose (f);

while (scanf ("%d", &i)>0x0)
printf ("%s\n", colors[i]);

return (0);
}