for (char c = 'a'; c <= 'z'; ++c) std::cout << c << std::endl;ou encore
for (char c = 97; c <= 122; ++c) std::cout << c << std::endl;.
#include <iostream> #include <fstream> #include <ctime> #include <cstdlib> #include <cassert> const unsigned int LIMIT = 1500; int main() { srand(time(0)); std::cout << "Getting ready..." << std::endl; std::ofstream file("file.txt"); if (!file) { std::cerr << "Hum, there's an error with the file." << " Please verify that you have enough disk" << " space available." << std::endl; } unsigned int nb_char = 0; while (nb_char < LIMIT) { const char letter = rand() % 26 + 'a'; assert(letter >= 'a' && letter <= 'z'); file << letter; ++nb_char; } file << std::endl; return 0; }
#include <iostream> #include <fstream> #include <vector> #include <set> #include <cstdlib> void my_pause() { std::cout << "Press any key to continue...\n"; system("pause>nul"); } bool loadDictionary(const std::string& filename, std::set<std::string>& set, unsigned int wordMaxLength) { std::ifstream file(filename.c_str()); if (!file) return false; std::string line; while (std::getline(file, line)) if (wordMaxLength == line.size()) // On ne met que les mots ayant la taille voulue. set.insert(line); return true; } bool read(std::istream& stream, unsigned int count, std::string& word) { std::vector<char> result(count); // Because vector is guaranteed to be contiguous in C++03 stream.read(&result[0], count); word = std::string(&result[0], &result[count]); return stream; } bool printCorrespondingWord(const std::string& filename, const std::set<std::string>& dic, unsigned int wordMaxLength) { std::ifstream file(filename.c_str()); if (!file) return false; unsigned int nb_found = 0; unsigned int current_pos = 0; std::string word; while (read(file, wordMaxLength, word)) { file.seekg(current_pos); if (dic.find(word) != dic.end()) { std::cout << "Find the word \"" << word << "\"!\n"; ++nb_found; } ++current_pos; } std::cout << "Found " << nb_found << " matching words!" << std::endl; return true; } int main() { std::set<std::string> set; unsigned int wordMaxLength = 0; std::cout << "Define a maximum letter count for a word (the highest the slowest the process will be): "; std::cin >> wordMaxLength; if (!loadDictionary("fr.dic", set, wordMaxLength)) { std::cerr << "There's an error with the dictionnary file. Please verify that it exist.\n"; my_pause(); return 1; } if (!printCorrespondingWord("file.txt", set, wordMaxLength)) { std::cerr << "There's an error. Verify that the file \"file.txt\" exist. If it does, well damn.\n"; my_pause(); return 1; } return 0; }
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
int main()
{
srand(time(0));
int chiffre;
cout << "Getting ready..." << endl;
ofstream file("file.txt", ios::out | ios::app);
if (file)
{
while (1==1)
{
chiffre = (rand() % 25)+1;
file << (char)(chiffre + 96); //96 car tu fais +1
}
.
.
.
class rechercheMot
{
public:
string sFileDico;//fichier qui contiendra ton dictionnaire de mot
public string* sMotRes;//contiendra tous tes résultats
//Constructeur
rechercheMot(string tmpFileDic);
//- - A toi de le faire, assigner le fichier renseigné à sFileDico + faire le new de ta liste
//Méthode de recherche d'un mot
//Info: le prefix est "th" car c'est une méthode qui sera appelée dans un thread
void th_recherche( string mot ) ;
//- - A toi de le faire, rechercher "mot" dans le fichier et l ajouter à la liste de résultats si tu trouve
}
Dans le cas d un dictionnaire de données, je ne suis pas trop d accord car il peu vite être très lourd, je serai plutot d'avis d'indexer que charger en mémoire mais bon =p
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionVis a vis de l indexation j'étais plutot dans l indée de gestion de curseur pour accéder directement à un emplacement (pas de chargement, une lecture directe sur le disque donc pas de lenteur issue de la taille du fichier).
Latency Comparison Numbers
--------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns (14x L1 cache)
Mutex lock/unlock 25 ns
Main memory reference 100 ns (20x L2 cache, 200x L1 cache)
Compress 1K bytes with Zippy 3,000 ns
Send 1K bytes over 1 Gbps network 10,000 ns
Read 4K randomly from SSD 150,000 ns
Read 1 MB sequentially from memory 250,000 ns
Round trip within same datacenter 500,000 ns
Read 1 MB sequentially from SSD 1,000,000 ns (4X memory)
Disk seek 10,000,000 ns 10,000 us (20x datacenter roundtrip)
Read 1 MB sequentially from disk 20,000,000 ns (80x memory, 20X SSD)
Send packet CA->Netherlands->CA 150,000,000 ns
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
@nagashima Mettre le fichier dictionnaire dans une variable string, n'est-ce pas déconseillé ? Ou alors j'ai mal vu ?
@nagashima Mettre le fichier dictionnaire dans une variable string, n'est-ce pas déconseillé ? Ou alors j'ai mal vu ?
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature