Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 09:44   #1
Fallart
 
Регистрация: 12.05.2011
Сообщений: 9
По умолчанию Вывод текста из TXT файла

Ребят, нужна помощь.
Необходимо вывести три строчки текста из файла.
Я чего-то застрял, получается только с первой строчкой.
Вот кусок:

Код:
companyinfo = fopen("./company.txt","r");
	if (companyinfo == NULL) perror ("Error opening file");
	else {
		fgets (mystring, 100, companyinfo);
		
		fclose(companyinfo);
	}
	fprintf(reportFile,COMPINFO,mystring);

Последний раз редактировалось Fallart; 17.05.2011 в 18:00.
Fallart вне форума Ответить с цитированием
Старый 17.05.2011, 09:50   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
else {
fgets (mystring, 100, companyinfo);
fgets (mystring1, 100, companyinfo);
fgets (mystring2, 100, companyinfo);
// ...
fclose(companyinfo);
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 17.05.2011, 10:05   #3
Fallart
 
Регистрация: 12.05.2011
Сообщений: 9
По умолчанию

Все элементарно и просто)))
А я с strln мучаюсь...
Спасибо!
Fallart вне форума Ответить с цитированием
Старый 17.05.2011, 10:32   #4
Fallart
 
Регистрация: 12.05.2011
Сообщений: 9
По умолчанию

Рано я обрадовался...
Так-то все работает, но вот отформатировать вывод
никак не получается.
Мне нужен формат типа:

****************************
* string1_____________________*
* string2_____________________*
* string3_____________________*
****************************

"__________" вставил, чтобы не съезжало.

Последний раз редактировалось Fallart; 17.05.2011 в 10:34.
Fallart вне форума Ответить с цитированием
Старый 17.05.2011, 11:13   #5
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Функция printf спасет отца русской демократии (с).
Ищи на третьей планете ...*зачеркнуто*... параметр width.
Например:
Код:
printf("*%30s *\n", mystring)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 17.05.2011, 19:04   #6
Fallart
 
Регистрация: 12.05.2011
Сообщений: 9
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define UPSIDE         "********************************************************\n"
#define CHECKHEADER    "*                        Check No  %3d                   *\n"
#define BLANKLINE      "B                                                        *\n"
#define COMPINFO       "*    %30s                                                *\n"
#define PAYTO          "*    Pay to the Order of                                 *\n"  
#define EMPLOYEENAME   "*    %-10s%-10s                                          *\n"

#define REPORTFORMAT7  " "


#define MAX 15

extern void CalculateTaxes(float gross,float defr, float *ft,float *st,float *ssit);
extern float calcGross(float h, float pr); // pass by value
void getTheData(char *ln, char *fn,float *h, float *p,float *d);

typedef struct EmployeeData
{
char lastname[15+1];
char firstname[10+1];
float pr;
float rh;
float theGross;
float fedtax;
float ssitax;
float net;
float oh;
float statetax;
float defer;
}EmployeeData;

void qsort(EmployeeData worker[], int left, int right);//ATTN!!


     
int main(void)
{
   int i = 0;
   EmployeeData worker[MAX];
   int counter=0;
   float totpr=0,totrh=0,totoh=0,totgross=0,totft=0,totssi=0,totnet=0,totst=0,totdef=0;
   float avpr=0,avrh=0,avoh=0,avgross=0,avft=0,avssi=0,avnet=0,avst=0,avdef=0;
   float h;
   char answer;
   FILE * reportFile;
   FILE * companyinfo;// 1) declare a FILE * variable
	char mystring[30],mystring1[30],mystring2[30];
   
   reportFile = fopen("./report.txt","wt");
   // 2) open a report file with access mode "write-text"
   if (reportFile == NULL)
   {
     printf("  Report file open failed ...\n");
     fflush(stdin);
     getchar();
     exit(-10); // terminate w/ failure code -10; reqs <stdlib>
   }
   do {
     getTheData(worker[i].lastname,worker[i].firstname,&h,&worker[i].pr,&worker[i].defer);
     worker[i].theGross = calcGross(h,worker[i].pr); // call 3.4
     CalculateTaxes(worker[i].theGross,worker[i].defer,&worker[i].fedtax,&worker[i].statetax,&worker[i].ssitax); // 3.5
		// float rh, oh, net;
		 if (h <= 40)
		 {worker[i].rh=h;
		 worker[i].oh=0;}
		 else
		 { worker[i].rh=40;
		 worker[i].oh=h-40;}

	 worker[i].net= worker[i].theGross-worker[i].defer-worker[i].fedtax-worker[i].ssitax-worker[i].statetax;

    
	
	totpr=totpr+worker[i].pr;
	totrh=totrh+worker[i].rh;
	totoh=totoh+worker[i].oh;
	totgross=totgross+worker[i].theGross;
	totft=totft+worker[i].fedtax;
	totssi=totssi+worker[i].ssitax;
	totnet=totnet+worker[i].net;
	totst=totst+worker[i].statetax;
	totdef=totdef+worker[i].defer;

	counter++;
	i++;

     printf("  Do you have another employee(Y/N) ==> ");
     while (getchar() != '\n'); // same as fflush(stdin);
     answer = getchar();
     getchar(); // removes '\n' from response
   } while (answer == 'y' || answer == 'Y');

	qsort(worker, 0, counter-1);//ATTN!!

	int chkNo=100;
    int k=0;

	//int len;
	//len = strlen(mystring);

do
{
	fprintf(reportFile,UPSIDE);
	fprintf(reportFile,CHECKHEADER,chkNo);
	fprintf(reportFile,BLANKLINE);
	
	companyinfo = fopen("./company.txt","r");
	if (companyinfo == NULL) perror ("Error opening file");
	else {
		fgets (mystring, 30, companyinfo);
		fgets (mystring1, 30, companyinfo);
		fgets (mystring2, 30, companyinfo);

		fclose(companyinfo);
	}
	fprintf(reportFile,COMPINFO,mystring);
	fprintf(reportFile,COMPINFO,mystring1);
	fprintf(reportFile,COMPINFO,mystring2);	//fprintf(reportFile,COMPINFO,companyinfo);


	 k++;
	 chkNo++;
} while (k<i);

   	avpr=totpr/counter;
	avrh=totrh/counter;
	avoh=totoh/counter;
	avgross=totgross/counter;
	avft=totft/counter;
	avssi=totssi/counter;
	avnet=totnet/counter;
	avst=totst/counter;
	avdef=totdef/counter;

	/*fprintf(reportFile,REPORTFORMAT3,"Totals",totpr,totrh,totgross,totft,totssi,totnet);
	fprintf(reportFile,REPORTFORMAT4,totoh,totst,totdef);
	fprintf(reportFile,REPORTFORMAT5,"Averages",avpr,avrh,avgross,avft,avssi,avnet);
	fprintf(reportFile,REPORTFORMAT6,avoh,avst,avdef);
	*/

   fclose(reportFile); // 4) close the file
   while (getchar() != '\n'); // same as fflush(stdin);
   printf(" Press any key ... ");
   getchar();  return 0;
}

void getTheData(char *ln, char *fn,float *h, float *p,float *d)
{
  printf(" Enter last name ==> ");
  scanf("%s",ln);
  printf(" Enter first name ==> ");
  scanf("%s",fn);
  printf(" Enter hours ==> ");
  scanf("%f",h);
  printf(" Enter payrate ==> ");
  scanf("%f",p);
  printf(" Enter deferred earnings ==> ");
  scanf("%f",d);
}

}
Как можно отформатировать эту заразу? Съезжает, хоть ты тресни...
Fallart вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод данных из txt файла на экран (си++) Skrydlov Помощь студентам 0 26.12.2010 21:13
if и чтение+вывод из файла .txt webber9989 PHP 4 24.08.2010 22:13
Вывод текста из документа txt soonner JavaScript, Ajax 4 12.05.2009 16:26