예제 #1
0
파일: sudoku.c 프로젝트: gnimnet/sudoku
int getnext(int nowrow,int nowcol){
	char canput[10];
	int i;
	if(sudoku[nowrow][nowcol]!=0){//已经有数据
		if(nowrow==8 && nowcol==8)
			return 1;
		else
			return getnext(nowrow+(nowcol+1)/9,(nowcol+1)%9);
	}
	getput(nowrow,nowcol,canput);
	for(i=1;i<=9;i++){
		if(canput[i]){
			if(nowrow==8 && nowcol==8){
				sudoku[nowrow][nowcol]=i;
				return 1;
			}
			sudoku[nowrow][nowcol]=i;
			if(getnext(nowrow+(nowcol+1)/9,(nowcol+1)%9)){
				return 1;
			}
			sudoku[nowrow][nowcol]=0;
		}
	}
	return 0;
}
예제 #2
0
파일: lex.c 프로젝트: kahrs/cda
static void
ScanChar(void)
{
	int startline = yyline;
	/* keutzer
	char c;
	*/
	int c;
	int saw_backsl = 0;

	while((c=getput())!=EOF) {
		if (c=='\'' && !saw_backsl)
			return;
		if (c=='\\' && !saw_backsl) {
			saw_backsl = 1;
			continue;
		}
		saw_backsl = 0;
	}
	/* fall thru due to EOF */
	yyerror2("unexpected EOF in character constant beginning on line %d",
		 startline);
	nerrors++;
	cleanup(1);
}
예제 #3
0
파일: cp.cpp 프로젝트: kluu006/rshell
int main(int argc, char **argv) {
    if (argc < 3) {
        std::cerr << "usage: ./cp <input> <output> <optional>" << std::endl;
        exit(1);
    }

    //  Check to see if files exist 

    if (access(argv[1], F_OK) != 0) {
        std::cerr << "source file doesn't exist or no permissions" << std::endl;
        exit(1);
    }
    else perror("access");
    if (access(argv[2], F_OK) == 0) {
        std::cerr << "target file already exists" << std::endl;
        exit(1);
    }
    else perror("access");

    // Get size of file 
    unsigned long long size;
    struct stat st;
    if (stat(argv[1], &st) == 0) {
        size = st.st_size;
    } else {
        perror("stat size check");
        exit(1);
    }


    // Check if arg1 is directory
    if (stat(argv[1], &st) == 0) {
        if (S_ISDIR(st.st_mode)) {
            std::cerr << "arg1 is directory" << std::endl;
            exit(1);
        }
    } else {
        perror("stat dir check");
    }

    // Check if arg2 is directory
    if (stat(argv[2], &st) == 0) {
        if (S_ISDIR(st.st_mode)) {
            std::cerr << "arg2 is directory" << std::endl;
            exit(1);
        }
    } else {
    	if(false) perror("stat");
    }

    if(argc == 3){
        readwritebufsiz(size, argc, argv);
    }
    else{
        getput(size, argc, argv);
        readwrite1char(size, argc, argv);
        readwritebufsiz(size, argc, argv);
    }

    return 0;
}