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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2011, 16:47   #1
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
Печаль

Есть файл, в нем записаны числовые значения, требуется в этой строке найти схожие значения и вывести их на экран. Вот мои наработки:
Код:
#include "stdafx.h"
#include <string>
using namespace std;

int main () {
  setlocale(LC_ALL,"Russian");
  string line;
  string linet;
  ifstream myfile ("C:\\Users\\Администратор\\Documents\\InputData.txt");
    while ( myfile.good()){
      getline (myfile,line);
	  myfile.close();
	  }
	linet=line;
	for(int i=0;i<12;i++){
		for(int j=0;j<12;j++){
		   if(linet[i]==line[i])
			   cout<<linet[i]<<endl;
		}
	}
   system("PAUSE");
return 0;
}
В файле stdafx.h находится следующее:
Код:
#pragma once
#include <clocale>
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
Просто подскажите как реализовать цикл сравнения каждого элемента одной строки с каждым элементом другой.
Злостный анимешнег =^.^=

Последний раз редактировалось Stilet; 02.04.2011 в 17:45.
Демик вне форума Ответить с цитированием
Старый 02.04.2011, 17:42   #2
Ирина Сергеевна
Пользователь
 
Регистрация: 20.05.2009
Сообщений: 17
Радость

Функции fscanf() и fseek() использовать не пробовали?
The impossible is possible, if you really want..
Ирина Сергеевна вне форума Ответить с цитированием
Старый 02.04.2011, 20:07   #3
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

А разве fseek() не отвечает за перемещение курсора по считываемому файлу, а fscanf() считывание из файла??

Люди, пожалуйста объясните мне дураку как можно сравнить циклом две строки либо же переделать их в интовые массивы.!
Злостный анимешнег =^.^=

Последний раз редактировалось Stilet; 03.04.2011 в 09:13.
Демик вне форума Ответить с цитированием
Старый 02.04.2011, 21:12   #4
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Спасибо, щас опробуем

Изменил на это:
Код:
#include "stdafx.h"
#include <string>
using namespace std;

int main () {
  setlocale(LC_ALL,"Russian");
  string a;
  string b;
  int p=0;
  int c[12];
  ifstream myfile ("C:\\Users\\Администратор\\Documents\\InputData.txt");
    while ( myfile.good()){
      getline (myfile,a);
	  myfile.close();
	  }
	b=a;
	for(int i=0;i<12;i++)
	{
	if(a[i]==b[i]) 
	{
	c[p]=a[i];
	p++;
	}
	}
	cout<<c<<endl;
   system("PAUSE");
return 0;
Получил это:
003EFB34
Для продолжения нажмите любую клавишу . . .
Как я понял, он выводит результат в Hex режиме. как сделать что бы выводил в Dec? Или может он мне выдал адрес массива?

Народ, кто нить отзовитесь) Это фрагмент курсовой и если вы мне поможете, то совершите благородный поступок, который отразится на вашей карме))
Злостный анимешнег =^.^=

Последний раз редактировалось Stilet; 03.04.2011 в 09:17.
Демик вне форума Ответить с цитированием
Старый 03.04.2011, 08:54   #5
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Код:
#include "stdafx.h"

#include<iostream>
#include<conio.h>

int _tmain(int argc, _TCHAR* argv[])
{
	char s1[]="1 2 4 8 3 4 7";
	char s2[]="2 3 5 7 8 3";
for(int i=0;i<14;i++)
   for(int j=0;j<12;j++)
   {
	   if((s2[j]==s1[i])&&(s2[j]!=' ')&&(s2[j]!=NULL))
	   {
		   std ::cout<<s2[j]<<","<<j<<"\n";
	       
	   }
   }

getch();


	//std::cout<<s2;
	return 0;
}
Это работающий код
Biggs вне форума Ответить с цитированием
Старый 03.04.2011, 09:51   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А чё? Стандартными средствами С++ уже не круто?
Код:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

int main()
{
    const char* myString = "Hello World";
    const char* stringMy = "World Hello";
    cout<<strcmp(myString,stringMy)<<endl;
    system("pause");
    return 0;
}
Функция возвращает -1, если вторая строка "больше";
Функция возвращает 0, если строки равны;
Функция возвращает 1, если первая строка "больше".

P.S. Немного не в тему, но просто примите к сведению.
_-Re@l-_ вне форума Ответить с цитированием
Старый 03.04.2011, 10:52   #7
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

_-Re@l-_, дополню

strcmp - сравнивает строки char
wcscmp - сравнивает строки wchar
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 03.04.2011, 12:00   #8
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Цитата:
Код:


#include "stdafx.h"

#include<iostream>
#include<conio.h>

int _tmain(int argc, _TCHAR* argv[])
{
char s1[]="1 2 4 8 3 4 7";
char s2[]="2 3 5 7 8 3";
for(int i=0;i<14;i++)
for(int j=0;j<12;j++)
{
if((s2[j]==s1[i])&&(s2[j]!=' ')&&(s2[j]!=NULL))
{
std ::cout<<s2[j]<<","<<j<<"\n";

}
}

getch();


//std::cout<<s2;
return 0;
}

Это работающий код
Спасибо, но это немного не мой случай.

Цитата:
А чё? Стандартными средствами С++ уже не круто?
Код:


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

int main()
{
const char* myString = "Hello World";
const char* stringMy = "World Hello";
cout<<strcmp(myString,stringMy)<<en dl;
system("pause");
return 0;
}

Функция возвращает -1, если вторая строка "больше";
Функция возвращает 0, если строки равны;
Функция возвращает 1, если первая строка "больше".

P.S. Немного не в тему, но просто примите к сведению.
Принял к сведению
Может если я подробней напишу что мне нужно, это поможет делу?)
Вот мое задание:
Программирование - курсовое задание, вариант 4
Прямая задана уравнением ax+by+c=0, a и b не равны 0. В файле заданы коэффициенты N (N>=3)прямых. Определить, имеются ли среди этих
прямых параллельные или совпадающие.

Я не прошу сделать его за меня, алгоритм я уже понял как делать, основная трудность в том что не получается считать данные в массив.
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 03.04.2011, 13:49   #9
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

ifstream ifs("C:\\test.txt");
string line;
while(getline(ifs,line)) {
//cout << "[ " << line << " ]" << endl;
}


char *cg;
cg=strtok(line," ");
while(cg!=NULL)
{


p[i]=atoi(cg);
cg=strtok(NULL," ");
i++
}
Тока массив p надо определить,а так алгоритм простой считываем файл в строку, потом строку разбиваем на лексемы , лексемы превращаем в целые числа и записываем в массив
С массивом возможно ты справишься-)
Biggs вне форума Ответить с цитированием
Старый 03.04.2011, 18:06   #10
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Спасибо за помощь думаю справлюсь)
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить две переменные Delphinchik PHP 1 06.12.2010 20:12
сравнить две строки maxs7 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 01.10.2010 05:27
Как сравнить две таблицы? MOLOTOV Microsoft Office Excel 9 20.07.2010 21:23
Нужно сравнить две базы skorobej Microsoft Office Excel 10 30.03.2010 14:01
Сравнить две функции Sergey2 Помощь студентам 6 28.10.2008 22:11