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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 13:04   #1
Deniska112
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 33
По умолчанию помогите подправить программу

Всем привет!Вот возник такой вопрос у меня в программе после открытия файла программа сначала читает символы а потом переводит их в число, но преподу не понравилось и он сказал сделай так что бы сразу читались цифры но что то у меня не получается подскажите кто знает вот код программы
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>


int i,j,k,f;
const int n=30,m=30;

int Poisk(int **mas, int a, int b)
{
 k=0;int p=0;
 for(i=1;i<=a;i++)
 {
	 for(j=1;j<=b;j++)
		  if (mas[i][j]!=0) k++;
	 if (k==b) p++;
	 k=0;
 }
 return (p);
}
void Maxim(int **mas, int a, int b)
{
 int g=0,m1=1,m2=1;
 while (!g)
 {
  k=0;
  for(i=1;i<=a;i++)
	  for(j=1;j<=b;j++)
			if (mas[i][j]>=mas[m1][m2]) {m1=i; m2=j;}
  for(i=1;i<=a;i++)
	  for(j=1;j<=b;j++)
			if (mas[m1][m2]==mas[i][j]) {m1=i; m2=j; k++;}
  if (k>1) g=1;
	 else mas[m1][m2]=-32000;
 }
 printf("\n\nMax = %d \n",mas[m1][m2]);
}
main()
{
 clrscr(); randomize();
 char p[100]; FILE *fp;
 int **A; A=new int*[n];
 char st[10]; char *str;
 printf("========================\n");
 printf("\nVvedite put k failu: ");
 scanf("%s",p);
 printf("\n========================\n Matrix: \n");
 fp = fopen(p,"r");
 for(i=1;i<=n;i++)
	A[n]=new int[m];
 i=1;
while(!feof(fp))
 {
	   j=1;
	   while((fgetc(fp)!='\n')&&(!feof(fp)))
	   {
				/* fseek(fp,-1,SEEK_CUR);
				 fscanf(fp,"%s",st);
				A[i][j]=strtol(st,&str,10);*/
				printf("%4d",A[i][j]);
				 j++;
	   }
	   printf("\n");
	   i++;
 }
 i--; j--;
 printf("========================");
 printf("\nMatrica %dx%d\n",i,j);
 f=Poisk(A,i,j);
  printf("========================");
 printf("\nKol-vo strok = %d\n",f);
   printf("========================");
 i--;j--;
 Maxim(A,i,j);
 fclose(fp); delete []A;
 getch();
}
исправить нужно вот тут
Код:
{
	   j=1;
	   while((fgetc(fp)!='\n')&&(!feof(fp)))
	   {
				/* fseek(fp,-1,SEEK_CUR);
				 fscanf(fp,"%s",st);
				A[i][j]=strtol(st,&str,10);*/
				printf("%4d",A[i][j]);
				 j++;
	   }
а как я не знаю!(

Модератор: тег CODE

Последний раз редактировалось Sazary; 25.06.2009 в 15:53.
Deniska112 вне форума Ответить с цитированием
Старый 25.06.2009, 13:29   #2
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

так если в файле исключительно цифры, заведи переменную int там или какую надо и считывай сразу в нее
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 25.06.2009, 13:50   #3
Deniska112
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 33
По умолчанию

Обьясни поподробней!
Deniska112 вне форума Ответить с цитированием
Старый 25.06.2009, 13:54   #4
Victor Deltorro
Пользователь
 
Аватар для Victor Deltorro
 
Регистрация: 24.06.2009
Сообщений: 17
По умолчанию

Тебе нужно просто считать целиком файл в котором одни цифры?? Я правильно понимаю...?
Our span of life is brief, but is long enough for us to live well and honestly...
Victor Deltorro вне форума Ответить с цитированием
Старый 25.06.2009, 14:02   #5
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

если файл цифровой исключительно, то как ты считываешь в строку, так же считывай только в число сразу
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 25.06.2009, 14:37   #6
Deniska112
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 33
По умолчанию

Да мне нужно считать файл в котором одни цифры
Deniska112 вне форума Ответить с цитированием
Старый 25.06.2009, 15:04   #7
Victor Deltorro
Пользователь
 
Аватар для Victor Deltorro
 
Регистрация: 24.06.2009
Сообщений: 17
По умолчанию

Код:
char Data[100];
int index = 100;
Fstream Read(Name, std::ios::in|std::ios::binary);
	If(!Read){
		Std::cout<<”Error”;
                      Return 1;
	}
	Read.read((char *) Data, sizeof Data);
	For(;index < 100; index++) {
		Std::cout<<Data[index];
	}
Писал в Ворде, так как компилятора под рукой нету...
Я думаю смысл ясен...
Ты читаешь фай, название которого ты одлжен вставить вместе моего Name, читаешь ты его в массив, далее ты выводишь его на экран...
Если что подравь, так как повторюсь.. писал не в С...Проверить не могу.!
Если я тебя правильно понял... и тебе просто нужно прочитать файл... то вот...
Our span of life is brief, but is long enough for us to live well and honestly...

Последний раз редактировалось Sazary; 25.06.2009 в 15:54.
Victor Deltorro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надо бы подправить программу)) Fylhtq Паскаль, Turbo Pascal, PascalABC.NET 3 19.05.2009 19:55
Можете подправить программу??? Срочно надо Fylhtq Паскаль, Turbo Pascal, PascalABC.NET 0 06.01.2009 10:56
Помогите подправить формулу! Maxx Microsoft Office Excel 5 16.12.2008 13:43
Помогите пожалуйста исправить подправить процедуру (строки) Rumus Помощь студентам 5 02.07.2008 16:50