evo ako mi neko moze pomoci rjesit ovaj zadatak.. al hitno mi je i treba mi jos veceras.. hvala..
zadatak:Ispisati na ekran sve retke u datoteci koji su dulji od 20 znakova
evo ako mi neko moze pomoci rjesit ovaj zadatak.. al hitno mi je i treba mi jos veceras.. hvala..
zadatak:Ispisati na ekran sve retke u datoteci koji su dulji od 20 znakova
#include "iostream"
#include "fstream"
#include "string"
using namespace std;
int main()
{
char a[256], *fileName2;
string fileName, b;
cin >> fileName;
ifstream datoteka;
fileName2 = new char[fileName.size()+1];
strcpy(fileName2,fileName.c_str());
datoteka.open(fileName2, ifstream::in);
while (!datoteka.eof())
{
datoteka.getline(a,256);
b =(string)a;
if ((b.size())>=20) cout<<b<<endl;
}
return 0;
}
Nisam odgovoran za mogucu stetu nastalu koristenjem ovog koda.
U program kad ga pokrenes unosis string u obliku
c:/bla.txt
pod uvjetom da te zanimaju linije iz datoteke bla.txt koja se nalazi odmah na c disku.
Inace, nemoj da ti bude tesko progooglat malo prije nego postavis pitanje, ili probat nesto sam prvo.
ma pokusavam ja to rjesit..
evo moje, ali mi ne radi.. jel mozes ispraviti u mom programu kaj je kruvo pa da proradi..
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char slovo[100];
int n=0,i=0;
/*otvori datoteku za pisanje i citanje*/
fp=fopen("ime.txt","r+");
/*Citaj do kraja datoteke*/
while(!feof(fp))
{
fgets(slovo, 100, fp);
/*Ako ucitan znak nije oznaka za novi red povecaj brojac znakova*/
if(slovo!='\n') i++;
/*Ako smo dosli do oznake za novi red*/
if(slovo=='\n')
{
/*Ako trenutni red je imao vise od 20 znakova povecaj brojac redova*/
if(i>20){
printf("%s", slovo);
}
/*Resetiraj brojac znakova na 0*/
i=0;
}
}
system("PAUSE");
}
ma pokusavam ja to rjesit..
evo moje, ali mi ne radi.. jel mozes ispraviti u mom programu kaj je kruvo pa da proradi..
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char slovo[100];
int n=0,i=0;
/*otvori datoteku za pisanje i citanje*/
fp=fopen("ime.txt","r+");
/*Citaj do kraja datoteke*/
while(!feof(fp))
{
fgets(slovo, 100, fp);
/*Ako ucitan znak nije oznaka za novi red povecaj brojac znakova*/
if(slovo!='\n') i++;
/*Ako smo dosli do oznake za novi red*/
if(slovo=='\n')
{
if(i>20){
printf("%s", slovo);
}
/*Resetiraj brojac znakova na 0*/
i=0;
}
}
system("PAUSE");
}
Ovo u cem ti radis nije C++nego C.
Izvoli:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char slovo[100],c;
int i=0,j;
fp=fopen("ime.txt","r+");
do
{
slovo[i] = fgetc(fp);
c=slovo[i];
if(slovo[i]!='\n' && slovo[i]!=EOF) i++;
else
{
if(i>=20){
for (j=0;j<i;j++)
printf ("%c",slovo[j]);
i=0;
printf ("\n");
}
}
} while (c!=EOF);
system("PAUSE");
}
I dalje nisam odgovoran ak nesto ne valja.
Znaci greska ti je u tome sto nisi koristio fgetc funkciju i sto si pokusavao upisivati znakove u polje charova bez da si dao tocnu lokaciju u polju.
Otprilike je to to.
Ostalo je estetske prirode. xD
kaj da ti kažem, rale CAR si!! hvala ti
kaj da ti kažem, rale CAR si!! hvala ti
Nema problema, pogotovo kad netko stavi skoro rijesen zadatak, a samo negdje zapinje...
pozdrav, hitno bi mi trebala pomoc oko zadatka posto u cet. imam na rasporedu ispit u kojemu trebam string rijesiti, dakle zadatak ide ovako:
/*Stvorite polje ATL od n naziva atlettskih klubova.Prodnadite naziv s najvise rijeci
//i kopirajte ga u string AK.Ustringu AK pretvorite u drugoj rijeci svako drugo slovo u
//veliko slovo.U funkciji ak pronadite sumu ACII kodova promijenjenog stringa AK te u funksciji nek pretvorite
//dobivenu sumu ASCII kodova u sustav s bazom 25.Stvorite jednodimenzinalno dinamicko polje
//A u koje ćte upisati bazom 25.Stvorite jednodimenzionalno polje dinamicko polje A u koje ćete upisati brojeve znakova svake rijeci stringa Ak. Ispisite
//polje ATL, promijenjeni string Ak,dobiveni ekvivalent u sustavu s bazom 25 i dinamičko polje A.*//
/*dakle, ovo je najbolje sto sam ja uspio osobno izmuljati obzirom da pisem kolokvij a NIGDJE nemogu naci primjer(tj ne postoji) (ne pitajte me nista, sve znam... nazalost-tako je, vise nas je u grupi, kod svih je ista situacija, nema pomoci). Zanemarite sto mi u nadenoj recenici sa najvise rijeci ne pretvara svako drugo slovo u veliko, nesto sam kombinirao, znam to napraviti, ovako mi je ostalo ali mi se neda prepravljati, nije niti bitno. ono sto sam kod strcpy tamo stavio u navodnike je kako bi isao zadataka da se umjesto 'recenice sa najvise rijeci' trazi 'pronadji recenicu sa najvise znakova i kopiraj u string xy' posto se slicni zadaci rolaju sa malim preinakama. ONO sto bih vas molio za pomoc jest onaj boldani dio - dakle u toj recenici sa najvise rijeci koju smo nasli i kopirali u string AK - treba za SVAKU RIJEC PRONACI BROJ ZNAKOVA! to nemam pojma kakao napraviti, i jos jedno pitanje, ako umjesto pronadji 'prvu rijec i pretvori slova u veliko' pise PRONADJI PREDZADNJU RIJEC! dakle u toj najduljoj recenici znam naci prvu, drugu, trecu ... i zadnju rijec, ali ne znam kako naci predzadnju rijec. NA KOLJENIMA molim za pomoc, ne znam koga bih pitao vise. znam, nemam pojma o progrmairanju, ovo sam vise napamet naucio ali takva je situacija sa kolegijem na mom faxu, nitko drugi nezna nista bolje. HELP PLIZ, PLACAM PIVU U NEOGRANICENIM KOLICINAMA!!!
#include "stdafx.h"
#include <iostream>
#define RED 10
#define ZNAK 50
using namespace std;
int suma(char AK[])
{
int sum=0;
for(int i=0;i<strlen(AK);i++)
sum+=AK[i];
return sum;
}
void pretvori(int broj, int baza)
{
if(broj>=baza)
pretvori(broj/baza, baza);
if(broj%baza>=10)
cout<<char((broj%baza)+55);
else
cout<<broj%baza;
}
void main()
{
char ATL[RED][ZNAK],AK[ZNAK];
int i,j,n,najdulji=0,razmak,razmak1,index;
cout<<"Broj atl. klubova: ";
cin>>n;
cin.ignore();
cout<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<". klub: ";
cin.getline(ATL[i],ZNAK);
//if(strlen(ATL[i]>najdulji)
{
// najdulji=strlen(ATL[i]);
// strcpy(AK,ATL[i]);
}
}
int*y=new int[n];
for(i=0;i<n;i++)
{
razmak1=0;
for(j=0;ATL[i][j]!='\0';j++)
if(ATL[i][j]==' ')
razmak1++;
*(y+i)=razmak1+1;
}
int max=0;
for(i=0;i<n;i++)
{
if(y[i]>max)
{
max=y[i];
strcpy(AK,ATL[i]);
}
}
razmak=0;
for(i=0;AK[i]!='\0';i++)
if(AK[i]==' ')
{
razmak++;
if(razmak==1)
{
index=i;
break;
}
}
cout<<endl;
for(i=index+1;AK[i]!=' ';i++)
{
AK[i]='x';//(AK[i]);
if(i%2==0)
AK[i]='y';//(AK[i]);
}
cout<<endl;
for(i=0;i<n;i++)
cout<<i+1<<". recenica: "<<ATL[i]<<endl;
cout<<"Najdulja: "<<AK<<endl;
cout<<"Suma: "<<suma(AK)<<endl;
cout<<"Ekvivalent: ";
pretvori(suma(AK),23);
cout<<endl;
int*DULJINA=new int[n];
for(i=0;i<n;i++)
*(DULJINA+i)=strlen(ATL[i]);
for(i=0;i<n;i++)
cout<<i+1<<". recenica ima znakova: "<<*(DULJINA+i)<<endl;
for(i=0;i<n;i++)
cout<<i+1<<". recenica ima rijeci: "<<*(y+i)<<endl;
delete[]DULJINA;
DULJINA=NULL;
delete[]y;
y=NULL;
system("pause");
}
BUMP! ajmo programeri dok ste jos na poslu pomagajte ! : )