Насколько я помню что бы юзайть qt из под visual studio, его там надо сначала собрать. Используй лучше QtCreator или NetBeans.
Ессно перед тем как написать сюда я погуглил, но кроме как советов про "iconv" больше ничего нужного мне не было... Хотелось как-нибуть попроще, без всяких там библиотек))) Ещё есть вариант с qt, но это на крайний случай.
http://msdn.microsoft.com/en-us/library/aa450989.aspx http://msdn.microsoft.com/en-us/library/ms886760.aspx ======================= и кури конвертацию одного типа к другому
Переписал, выводит частично не те числа: Code: // http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82_%D0%9C%D0%B8%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%E2%80%94_%D0%A0%D0%B0%D0%B1%D0%B8%D0%BD%D0%B0 #include <cmath> #include <iostream> bool is_prime(int); int main(){ using namespace std; int a,b; cin >> a >> b; for(int i=a;i<=b;i++){ if(is_prime(i)){ cout << i << " "; } } system("PAUSE"); } bool is_prime(int m){ using namespace std; int r = 1000; int t = m-1; int s = 0; bool b = true; if(m==2){ return true; } if(m%2==0){ return false; } if(m==1){ return false; } while(t%2==0 || b){ b = false; s++; t=t/2; } for(int i=1;i<r+1;i++){ int a = 2+rand()%(m-1); int x = (long(pow(float(a),float(t))))%m; if((x==1)||(x==m-1)){ continue; } for(int j=1;j<s;j++){ x=(long(pow(float(x),2)))%m; if(x==1){ return false; } if(x==m-1){ break; } return false; } } return true; }
Спасибо конечно, но это только под винду. Извиняюсь что не уточнил сразу, необходимо кроссплатформенное решение.
вот так объявлен std:string Code: typedef basic_string<char_t> string; а вот так мультибайтовый вариант std::wstring Code: typedef basic_string<wchar_t> wstring;
Помогите с кодом, нужно пробежаться с указанного начального каталога по его подкаталогам, удаляя из них файлы с расширениями *.@@@,*.bla, *.sdx.
winflip Возрадуйся... опа, у меня ещё и пост простой 101 Code: #include <cmath> #include <iostream> bool is_prime(int); int main(){ using namespace std; //int a,b; for(int i=1;i<=1000;i++){ if(is_prime(i)){ cout << i << " "; } } system("PAUSE"); } bool is_prime(int m){ using namespace std; int r = 1000; int t = m-1; int s = 0; //bool b = true; if((m==2)||(m==3)){ return true; } if(m%2==0){ return false; } if(m==1){ return false; } while(t%2==0){ s++; t=t/2; } for(int i=1;i<r+1;i++){ int a = 2+rand()%(m-3); bool next = false; long x = a; for (int i1=0;i1<t-1;i1++) x = (x*a)%m; //int x = (long(pow(float(a),float(t))))%m; if((x==1)||(x==m-1)){ continue; } for(int j=1;j<s;j++) { x=(x%m)*(x%m)%m; if(x==1){ return false; } if(x==m-1){ next = true; break; } } if (!next) return false; } return true; }
В коде куча лишнего хлама, ибо вырезано кое-как из совсем другого проекта удачи! Code: #include <stdio.h> #include <windows.h> HANDLE ch; DWORD WriteToConsole(LPSTR text) { DWORD nChars; char buf[MAX_PATH]; strcpy(buf,text); strcat(buf,"\r\n"); char buf2[MAX_PATH]; CharToOem(buf,buf2); WriteConsole(ch,buf2,strlen(buf2),&nChars,0); return nChars; } void FindAndDelete(LPSTR path, LPSTR name ) { WIN32_FIND_DATA wfd; HANDLE fh; char lol[MAX_PATH]; strcpy(lol,path); strcat(lol,"*"); fh = FindFirstFile(lol,&wfd); if(fh == INVALID_HANDLE_VALUE) return; do { if (strstr(wfd.cFileName,name) != NULL) { char delfilebuf[MAX_PATH]; strcpy(delfilebuf,path); strcat(delfilebuf,wfd.cFileName); WriteToConsole(delfilebuf); //Удаляем файл DeleteFile(delfilebuf); } if ((!strcmp(wfd.cFileName,".")) || (!strcmp(wfd.cFileName,".."))) continue; if (wfd.dwFileAttributes ==FILE_ATTRIBUTE_DIRECTORY) { char pathbuf[MAX_PATH]; strcpy(pathbuf,path); if (pathbuf[strlen(pathbuf)-1] != '\\') strcat(pathbuf,"\\"); strcat(pathbuf,wfd.cFileName); if (pathbuf[strlen(pathbuf)-1] != '\\') strcat(pathbuf,"\\"); FindAndDelete(pathbuf,name); } } while (FindNextFile(fh,&wfd)); FindClose(fh); return; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { AllocConsole(); ch = GetStdHandle(STD_OUTPUT_HANDLE); //Запускаем рекурсивную функцию //Её параметры: путь к стартовой папке и // расширение удаляемых файлов (с точкой!) // удаляет файлы с заданным расширением в //стартовой папке, её подпапках, и их подпапках, и их //подпапках))))) etc FindAndDelete("D:\\tst\\",".\@\@\@"); FindAndDelete("D:\\tst\\",".bla"); FindAndDelete("D:\\tst\\",".sdx"); system("pause"); return 0; }
Помогите разобраться, FindFirstFile(mask, &findFileData) mask не передается с типами какойто косяк Code: #include <windows.h> #include <string.h> #include <stdio.h> #include <conio.h> TCHAR * filemask[] = { ".---", ".@@@", ".$a", ".$db", ".$sa", ".___", "._dd", "._detmp", "._mp", ".aps", ".bac", ".bak", ".bbs", ".bup", ".cdr_", ".chk", ".cpy", ".da0", ".diz", ".dmp", ".err", ".fic", ".fnd", ".ftg", ".fts", ".gid", ".ilk", ".ion", ".lo_", ".mch", ".MS", ".nav", ".ncb", ".nhc", ".nu3", ".nu4", ".old", ".pch", ".prv", ".sdi", ".sfap0", ".sfk", ".shd", ".sik", ".spc", ".sud", ".swr", ".syd", ".tds", ".temp", ".tmp", ".wbk", ".wc", ".wlg", ".wpx", ".xlg", ".xlk" }; int SearchFiles(TCHAR *buffer, TCHAR *mask) { HANDLE hFile; WIN32_FIND_DATA findFileData; TCHAR temp[MAX_PATH]; SetCurrentDirectory(buffer); if((hFile=FindFirstFile(mask, &findFileData))==INVALID_HANDLE_VALUE) { printf("Invalid file handle (%d)\n", GetLastError()); return -2; } else { do { if(!strcmp(findFileData.cFileName, TEXT("."))||!strcmp(findFileData.cFileName, TEXT(".."))) { continue; } if(findFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) { strcpy(temp, buffer); strcat(buffer, "\\"); strcat(buffer, findFileData.cFileName); SearchFiles(buffer); strcpy(buffer,temp); continue; } printf("File name is %s\n", findFileData.cFileName); } while(FindNextFile(hFile, &findFileData)!=0); } FindClose(hFile); return true; } int main(int argc, TCHAR* argv[]) { TCHAR buffer[MAX_PATH]; GetCurrentDirectory(sizeof(buffer), buffer); int arrsize = sizeof(filemask)/sizeof(int); for(int i=0; i<arrsize; i++){ SearchFiles(buffer, filemask[i]); } system("pause"); return 0; }
Ra$cal, дружище, если не сложно, помоги пожалуйста разобраться, в чем моя ошибка в коде на предыдущей странице