|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 3
|
Programma in C
Salve a tutti, sono nuovo del forum, e di linguaggio oltre all'italiano non ne conosco alcuno
"Ho" (trovato su google) compilato il seguente programma che serve a combinare lettere e numeri: Codice:
#include <stdio.h>
#include <string.h>
#define MAX 999999
int main (void)
{
char buff[MAX],*pbuff;
char tokn[MAX];
int l,k;
int i,j,p;
printf ("Digita il nome: ");
scanf ("%s",&buff);
l=strlen(buff);
printf ("Digita k (1..%d): ",l);
scanf ("%d",&k);
if (k<1 || k>l)
return 1;
pbuff=&buff[0];
do
{
for (i=0;i<l-(k-1);i++)
{
p=0;
tokn[p++]=*pbuff;
for (j=i+1; j<i+k && j<l;j++)
tokn[p++]=*(pbuff+j);
tokn[p]='\0';
do
{
printf ("%s\n",tokn);
tokn[p-1]=*(pbuff+j);
}while (j++<l);
}
pbuff++;
l--;
}while (1);
fflush(stdin);
getchar();}
Codice:
fflush(stdin); getchar();} Il problema è che facendo combinare per esempio 800 lettere i risultati non vengono visualizzati tutti ma solo una parte, gli altri scompaiono con l'avanzamento del calcolo. Come faccio ad ottmizzare il codice affinchè esca un txt di report con tutti i risultati? Grazie anticipate. Saluti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Cosenza
Messaggi: 2971
|
puoi creare un file (da codice C) e scriverci dentro il tuo output, per fare questo devi studiare la gestione file in C, che non è comunque molto difficile, ma magari per una persona che ha appena iniziato non è la cosa più indicata.
una semplice guida la trovi qui -> Input output su file un metodo indipendente dal codice che ti permette di scrivere l'output del tuo programma su un file è quello di usare l'operatore di redirezione output > supponendo che il tuo programmino C si chiami mycode.c, e che tu lo compili come mycode, per ottenere l'output in un file ti basta aggiungere "> file.txt" al comando per avviare il tuo programma es in GNU/Linux Codice:
$ ./myprog > file.txt Codice:
myprog.exe > file.txt |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
A parte questo... non ho capito cosa tu stia cercando di ottenere. Puoi fare un esempio di input/output previsti?
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 3
|
Salva a tutti, innanzitutto vi ringrazio per le tempestive risposte, il codice l'ho trovato su google, io non capisco una MaZza,
A me servirebbe un semplicissimo programma che inserendo i dati mi dia tutte le combinazioni possibili, PREMETTO CHE NON SI TRATTA TI ATTACCO BRUTE FORCE!!!! Io dovrei combinare, o solo numeri o solo lettere. Proprio adesso ho trovato questo, che è molto meglio di quello postato precedentemente, o meglio si avvicina di più a quello che mi serve, eccolo: Codice:
#include <string>
#include <iostream>
using namespace std;
void Anagramma(string A, string B)
{
if (A.size() == 0) cout << B << endl;
else
{
string Doppie;
for (int i = 0; i < A.size(); i++)
{
char temp[2];
temp[0] = A[i]; temp[1] = '\0';
if (Doppie.find(temp, 0) == string::npos)
{
A.erase(i, 1);
Anagramma(A, B + temp);
Doppie += temp;
A.insert(i, temp);
}
}
}
}
int main()
{
string A;
cin >> A;
cout << endl;
Anagramma(A, "");
Spero di essere stato chiaro.... Come posso modificare il codice affinchè esso esca un file TXT dove compaiono tutti i risultati? Vi ringrazio ancora per eventuali risposte! Ultima modifica di salvo.p.dj : 19-05-2010 alle 14:53. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2777
|
Ti ha già risposto deadlyomen17
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Cosenza
Messaggi: 2971
|
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: May 2010
Messaggi: 3
|
Scusate se vi ringrazio in ritardo ho avuto qualche piccolo problemino di salute!
GRAZIE ANCORA A TUTTI SIETE MITICI!!! Alla prossima!!!! Saluti Salvo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:41.




















